Yes, though the only one I think is actually relevent is probably
Dispatch, since Ted had made some changes to it to support the JMS
clients particular TemporaryQueue behaviour at the end of the previous
week following the discussions around that after your earlier mails.
Mainly I was just trying to reproduce your problem to see where the
issue was, but I wasn't able to.

Robbie

On 24 February 2017 at 17:10, Adel Boutros <[email protected]> wrote:
> Thank you Robbie.
>
>
> So If I understood correctly, in the next release of the components 
> (Dispatch, Proton, JMS), the below is correctly supported because you tested 
> on the Master branches. Right?
>
>
> Regards,
>
> Adel
>
> ________________________________
> From: Robbie Gemmell <[email protected]>
> Sent: Friday, February 24, 2017 5:43:05 PM
> To: [email protected]
> Subject: Re: [Qpid Dispatch] Manage Dispatch router from Qpid Jms
>
> I tried this (modified to use a temporary queue) and also modified the
> Qpid JMS HelloWorld example to use a temporary queue, and ran both
> against the router successfully multiple times, using the jms client
> from master, dispatch from master, and proton from master.
>
> The only odd thing was that Dispatch printed out two copies of notices
> about the connection closing without the links being explicitly
> detached, which is what the examples do and not something I would
> consider unusual. I wouldnt really expect to see these notices, but if
> so then only one copy.
>
> Fri Feb 24 16:33:21 2017 CONTAINER (notice) Aborting link
> 'qpid-jms:sender:ID:c7e7de5c-462b-4b0e-8ad5-2a005008c648:1:1:1:$management'
> due to parent connection end
> Fri Feb 24 16:33:21 2017 CONTAINER (notice) Aborting link
> 'qpid-jms:temp-queue-creator:ID:c7e7de5c-462b-4b0e-8ad5-2a005008c648:1:1'
> due to parent connection end
> Fri Feb 24 16:33:21 2017 CONTAINER (notice) Aborting link
> 'qpid-jms:receiver:ID:c7e7de5c-462b-4b0e-8ad5-2a005008c648:1:1:1:amqp:/_$temp.Cjf7UnrnQX4Ow9Z'
> due to parent connection end
> Fri Feb 24 16:33:21 2017 CONTAINER (notice) Aborting link
> 'qpid-jms:sender:ID:c7e7de5c-462b-4b0e-8ad5-2a005008c648:1:1:1:$management'
> due to parent connection end
> Fri Feb 24 16:33:21 2017 CONTAINER (notice) Aborting link
> 'qpid-jms:temp-queue-creator:ID:c7e7de5c-462b-4b0e-8ad5-2a005008c648:1:1'
> due to parent connection end
> Fri Feb 24 16:33:21 2017 CONTAINER (notice) Aborting link
> 'qpid-jms:receiver:ID:c7e7de5c-462b-4b0e-8ad5-2a005008c648:1:1:1:amqp:/_$temp.Cjf7UnrnQX4Ow9Z'
> due to parent connection end
>
> As an aside, the typical TemporaryQueue usage would be just to use the
> destination object directly, i.e the below, not ask its name and
> create another destination with that name. I tried both ways just to
> check it wasnt related though and they both worked the same.
> TemporaryQueue temporaryQueue = managementSession.createTemporaryQueue();
> managementConsumer = managementSession.createConsumer(temporaryQueue);
>
>
> On 22 February 2017 at 11:33, Adel Boutros <[email protected]> wrote:
>> Hello guys,
>>
>>
>> My basic JMS API is almost ready. I will share it with you soon to have your 
>> feedback.
>>
>>
>> However, I tried one last thing by getting a random queue name and using it 
>> as management reply queue to allow multiple configuration sessions 
>> simultaneously but it didn't work.
>>
>>
>> //This doesn't work and crashes the dispatch router
>>
>> TemporaryQueue temporaryQueue = managementSession.createTemporaryQueue();
>> replyToQueue = managementSession.createQueue(temporaryQueue.getQueueName());
>> managementConsumer = managementSession.createConsumer(replyToQueue);
>>
>> //This is the only thing working
>> replyToQueue = managementSession.createQueue("HARD_CODED_REPLY_QUEUE");
>> managementConsumer = managementSession.createConsumer(replyToQueue);
>>
>>
>> Can I have your input on the above?
>>
>> Regards,
>> Adel
>>
>>
>> ________________________________
>> From: Rob Godfrey <[email protected]>
>> Sent: Wednesday, February 15, 2017 4:46:59 PM
>> To: [email protected]
>> Subject: Re: [Qpid Dispatch] Manage Dispatch router from Qpid Jms
>>
>> On 15 February 2017 at 16:07, Robbie Gemmell <[email protected]>
>> wrote:
>>
>>> On 15 February 2017 at 14:15, Adel Boutros <[email protected]> wrote:
>>> > Hello guys,
>>> >
>>> >
>>> > Based on the discussion, we are currently writing a Java API based on
>>> JMS to configure the dispatch router. I have so far managed to do the
>>> following:
>>> >
>>> > * Create, Read, Delete addresses
>>> >
>>> > * Create, Read, Delete connectors
>>> >
>>> >
>>> > Config:
>>> >
>>> > Dispatch Router 0.7.0
>>> >
>>> > JMS 0.11.1
>>> >
>>> >
>>> > And I have noticed some problems and differences:
>>> >
>>> >
>>> > 1) It seems some calls return ObjectMessage and some TextMessage (This
>>> is on the side of the consumer in the replyTo)
>>> >
>>> > For example, creating twice the same queue will fail but the second call
>>> will return a JmsTextMessage with an empty body and status code 400
>>> >
>>>
>>> The client treats messages with an amqp-value sectioning containing
>>> null/nothing as a TextMessage with null value if they arent annotated
>>> to say otherwise, I'd guess thats where that comes from.
>>>
>>> >
>>> > 2) Returned statusCode differs between Connector and Address
>>> >
>>> > Object statusCodeValue = replyMessage.getObjectProperty("statusCode");
>>> >
>>> >
>>> > * Connector operations return java.lang.Long
>>> > * Address operations return org.apache.qpid.proton.amqp.UnsignedInteger
>>> >
>>>
>>> The router is presumably sending different values back for the
>>> different operations here, a long and a uint. The router should
>>> perhaps be consistent, and the client should perhaps not be returning
>>> the uint object either way.
>>>
>>> The last draft of the management spec seems to say the status code
>>> should be 'integer', im not clear if it means int (not uint)
>>> specifically, or just any integral type value.
>>>
>>>
>> The specification should definitely say which type should - so we'll fix
>> that in the next draft.  I'd suggest we should int (in AMQP terms) leading
>> to a java.lang.Integer type in the property you see through Java.
>>
>> -- Rob
>>
>>
>>
>>> >
>>> > 3) Create connector twice makes dispatch router crash.  I don't have the
>>> issue when creating addresses.
>>> > On the second create call,  JMS client receives a normal reply
>>> containing a statusCode of an exception. After I close the connection to
>>> the dispatch router via JMS (connection.close), I have the below crash
>>> >
>>> > (gdb) where
>>> > #0  0x00007f27194448a5 in raise () from /lib64/libc.so.6
>>> > #1  0x00007f2719446085 in abort () from /lib64/libc.so.6
>>> > #2  0x00007f27194827b7 in __libc_message () from /lib64/libc.so.6
>>> > #3  0x00007f27194880e6 in malloc_printerr () from /lib64/libc.so.6
>>> > #4  0x00007f271a40f109 in qd_hash_remove_by_handle (h=Unhandled dwarf
>>> expression opcode 0xf3
>>> > ) at /qpid-dispatch-0.7.0/src/hash.c:320
>>> > #5  0x00007f271a42247d in qdr_route_check_id_for_deletion_CT
>>> (cid=0x7f2708055850, core=Unhandled dwarf expression opcode 0xfa
>>> > ) at /qpid-dispatch-0.7.0/src/router_core/route_control.c:57
>>> > #6  0x00007f271a41e8d3 in qdr_connection_closed_CT (core=0x13d2d30,
>>> action=Unhandled dwarf expression opcode 0xf3
>>> > ) at /qpid-dispatch-0.7.0/src/router_core/connections.c:961
>>> > #7  0x00007f271a423f30 in router_core_thread (arg=0x13d2d30) at
>>> /qpid-dispatch-0.7.0/src/router_core/router_core_thread.c:83
>>> > #8  0x00007f2719f8c851 in start_thread () from /lib64/libpthread.so.0
>>> > #9  0x00007f27194fa90d in clone () from /lib64/libc.so.6
>>> >
>>> >
>>> > Wed Feb 15 12:20:52 2017 AGENT (error) Error performing CREATE:
>>> org.apache.qpid.dispatch.connector: Duplicate value 'connector/
>>> 127.0.0.1:5915:dispatch_management_connector_test' for unique attribute
>>> 'identity'
>>> > *** glibc detected *** /Dispatch/sbin/qdrouterd: double free or
>>> corruption (fasttop): 0x00007f2708033f10 ***
>>> > ======= Backtrace: =========
>>> > /lib64/libc.so.6(+0x760e6)[0x7f27194880e6]
>>> > /target/qpid-dispatch-rel/lib/qpid-dispatch/libqpid-dispatch
>>> .so(qd_hash_remove_by_handle+0x29)[0x7f271a40f109]
>>> > /target/qpid-dispatch-rel/lib/qpid-dispatch/libqpid-dispatch
>>> .so(+0x3547d)[0x7f271a42247d]
>>> > /target/qpid-dispatch-rel/lib/qpid-dispatch/libqpid-dispatch
>>> .so(+0x318d3)[0x7f271a41e8d3]
>>> > /target/qpid-dispatch-rel/lib/qpid-dispatch/libqpid-dispatch
>>> .so(router_core_thread+0x230)[0x7f271a423f30]
>>> > /lib64/libpthread.so.0(+0x7851)[0x7f2719f8c851]
>>> > /lib64/libc.so.6(clone+0x6d)[0x7f27194fa90d]
>>> > ======= Memory map: ========
>>> > 00400000-00403000 r-xp 00000000 fd:01 7735642
>>> /Dispatch/sbin/qdrouterd
>>> > 00603000-00604000 rw-p 00003000 fd:01 7735642
>>> /Dispatch/sbin/qdrouterd
>>> > 01113000-01458000 rw-p 00000000 00:00 0
>>> [heap]
>>> > 7f26f8000000-7f26f805c000 rw-p 00000000 00:00 0
>>> > 7f26f805c000-7f26fc000000 ---p 00000000 00:00 0
>>> > 7f26fc000000-7f26fc043000 rw-p 00000000 00:00 0
>>> > 7f26fc043000-7f2700000000 ---p 00000000 00:00 0
>>> > 7f2700000000-7f2700085000 rw-p 00000000 00:00 0
>>> > 7f2700085000-7f2704000000 ---p 00000000 00:00 0
>>> > 7f27073e9000-7f27073ff000 r-xp 00000000 fd:00 524293
>>>  /lib64/libgcc_s-4.4.7-20120601.so.1
>>> > 7f27073ff000-7f27075fe000 ---p 00016000 fd:00 524293
>>>  /lib64/libgcc_s-4.4.7-20120601.so.1
>>> > 7f27075fe000-7f27075ff000 rw-p 00015000 fd:00 524293
>>>  /lib64/libgcc_s-4.4.7-20120601.so.1
>>> > 7f27075ff000-7f2707600000 ---p 00000000 00:00 0
>>> > 7f2707600000-7f2708000000 rw-p 00000000 00:00 0
>>> > 7f2708000000-7f270805a000 rw-p 00000000 00:00 0
>>> > 7f270805a000-7f270c000000 ---p 00000000 00:00 0
>>> > 7f270c04a000-7f270c04f000 r-xp 00000000 fd:00 524322
>>>  /lib64/libnss_dns-2.12.so
>>> > 7f270c04f000-7f270c24e000 ---p 00005000 fd:00 524322
>>>  /lib64/libnss_dns-2.12.so
>>> > 7f270c24e000-7f270c24f000 r--p 00004000 fd:00 524322
>>>  /lib64/libnss_dns-2.12.so
>>> > 7f270c24f000-7f270c250000 rw-p 00005000 fd:00 524322
>>>  /lib64/libnss_dns-2.12.so
>>> > 7f270c250000-7f270c251000 ---p 00000000 00:00 0
>>> > 7f270c251000-7f270cc51000 rw-p 00000000 00:00 0
>>> > 7f270cc51000-7f270cc52000 ---p 00000000 00:00 0
>>> > 7f270cc52000-7f270d652000 rw-p 00000000 00:00 0
>>> > 7f270d652000-7f270d65e000 r-xp 00000000 fd:00 524324
>>>  /lib64/libnss_files-2.12.so
>>> > 7f270d65e000-7f270d85e000 ---p 0000c000 fd:00 524324
>>>  /lib64/libnss_files-2.12.so
>>> > 7f270d85e000-7f270d85f000 r--p 0000c000 fd:00 524324
>>>  /lib64/libnss_files-2.12.so
>>> > 7f270d85f000-7f270d860000 rw-p 0000d000 fd:00 524324
>>>  /lib64/libnss_files-2.12.so
>>> > 7f270d86a000-7f270d86b000 ---p 00000000 00:00 0
>>> > 7f270d86b000-7f270e3ac000 rw-p 00000000 00:00 0
>>> > 7f270e3ac000-7f270e3b1000 r-xp 00000000 00:16 4090944
>>> /python278/lib/python2.7/lib-dynload/select.so
>>> > 7f270e3b1000-7f270e5b0000 ---p 00005000 00:16 4090944
>>> /python278/lib/python2.7/lib-dynload/select.so
>>> > 7f270e5b0000-7f270e5b2000 rw-p 00004000 00:16 4090944
>>> /python278/lib/python2.7/lib-dynload/select.so
>>> > 7f270e5b2000-7f270e5b6000 r-xp 00000000 00:16 5568743
>>> /python278/lib/python2.7/lib-dynload/_lsprof.so
>>> > 7f270e5b6000-7f270e7b5000 ---p 00004000 00:16 5568743
>>> /python278/lib/python2.7/lib-dynload/_lsprof.so
>>> > 7f270e7b5000-7f270e7b6000 rw-p 00003000 00:16 5568743
>>> /python278/lib/python2.7/lib-dynload/_lsprof.so
>>> > 7f270e7b6000-7f270e8b7000 rw-p 00000000 00:00 0
>>> > 7f270e8b7000-7f270e8bc000 r-xp 00000000 00:16 6394000
>>> /python278/lib/python2.7/lib-dynload/strop.so
>>> > 7f270e8bc000-7f270eabb000 ---p 00005000 00:16 6394000
>>> /python278/lib/python2.7/lib-dynload/strop.so
>>> > 7f270eabb000-7f270eabd000 rw-p 00004000 00:16 6394000
>>> /python278/lib/python2.7/lib-dynload/strop.so
>>> > 7f270eabd000-7f270eafd000 rw-p 00000000 00:00 0
>>> > 7f270eafd000-7f270eb00000 r-xp 00000000 00:16 5568749
>>> /python278/lib/python2.7/lib-dynload/fcntl.so
>>> > 7f270eb00000-7f270ecff000 ---p 00003000 00:16 5568749
>>> /python278/lib/python2.7/lib-dynload/fcntl.so
>>> > 7f270ecff000-7f270ed01000 rw-p 00002000 00:16 5568749
>>> /python278/lib/python2.7/lib-dynload/fcntl.so
>>> > 7f270ed01000-7f270ed04000 r-xp 00000000 00:16 5568739
>>> /python278/lib/python2.7/lib-dynload/_random.so
>>> > 7f270ed04000-7f270ef03000 ---p 00003000 00:16 5568739
>>> /python278/lib/python2.7/lib-dynload/_random.so
>>> > 7f270ef03000-7f270ef04000 rw-p 00002000 00:16 5568739
>>> /python278/lib/python2.7/lib-dynload/_random.so
>>> > 4272 Aborted                 (core dumped)
>>> >
>>> >
>>> > Regards,
>>> > Adel
>>> >
>>> >
>>> > ________________________________
>>> > From: Rob Godfrey <[email protected]>
>>> > Sent: Monday, February 6, 2017 7:09 PM
>>> > To: [email protected]
>>> > Subject: Re: [Qpid Dispatch] Manage Dispatch router from Qpid Jms
>>> >
>>> > On 6 February 2017 at 19:03, Robbie Gemmell <[email protected]>
>>> > wrote:
>>> >
>>> >> On 6 February 2017 at 17:50, Rob Godfrey <[email protected]>
>>> wrote:
>>> >> > On 6 February 2017 at 18:44, Ted Ross <[email protected]> wrote:
>>> >> >
>>> >> >> It seems odd that the client creates a _sender_ to the temporary
>>> queue
>>> >> >> that it will never send messages _to_ but will receive messages
>>> _from_.
>>> >> >>
>>> >> >>
>>> >> > This is because JMS semantics require the temporary node to have a
>>> >> lifetime
>>> >> > scoped to the session (not a link), so the JMS client has to create a
>>> >> > synthetic link which it uses simply to manage the lifetime of the
>>> dynamic
>>> >> > node.  In order to not cause unintentional assigning of messages to a
>>> >> link
>>> >> > that will never actually be used for consumption, a sending link is
>>> used.
>>> >> > Note that in general JMS would expect that you should be able to send
>>> to
>>> >> a
>>> >> > temporary queue created in this way (since the point of temporary
>>> queues
>>> >> is
>>> >> > to use as a reply to)
>>> >> >
>>> >>
>>> >> Not really important here, but the lifetime is scoped to the
>>> >> Connection, not Session (agghhh JMS... :P)
>>> >>
>>> >
>>> > That's what I thought I was typing... obviously my fingers were not
>>> > cooperating with my brain at that point :-)
>>> >
>>> > -- Rob
>>> >
>>> >
>>> >>
>>> >> >
>>> >> >> Anyway, when the client creates a receiver with a dynamic source
>>> (and no
>>> >> >> dynamic-node-properties), the router will accept the link and assign
>>> a
>>> >> >> temporary address as the source.  This is only useful in this use
>>> case
>>> >> if
>>> >> >> the broker has a way of knowing that the temporary address is
>>> reachable
>>> >> via
>>> >> >> the router network.
>>> >> >>
>>> >> >> There is a way to route dynamic termini to a broker.  If an
>>> >> >> x-opt-qd.address property is included in the dynamic-node-properties,
>>> >> this
>>> >> >> address will be used to route the attach to the broker.  I've never
>>> >> tested
>>> >> >> this with a dynamic target in a sender.  It might not work.
>>> >> >
>>> >> >
>>> >> > And this really isn't something you'd be expecting a generic client
>>> (like
>>> >> > the JMS client) to know :-)
>>> >> >
>>> >> > -- Rob
>>> >> >
>>> >> >
>>> >> >>
>>> >> >>
>>> >> >> -Ted
>>> >> >>
>>> >> >>
>>> >> >> On 02/01/2017 11:07 AM, Robbie Gemmell wrote:
>>> >> >>
>>> >> >>> I've had a look at this. It would seem that Dispatch doesn't like
>>> what
>>> >> >>> the client is doing for createTemporaryQueue, but doesn't fail in a
>>> >> >>> very nice way, and the client then doesnt notice that things have
>>> gone
>>> >> >>> south in a somewhat unexpected way.
>>> >> >>>
>>> >> >>> The client opens a sending link with 'dynamic' target in order to
>>> >> >>> create a dynamic node for use as a TemporaryQueue
>>> address/destination
>>> >> >>> object, which specific consumers/producers are then created against
>>> by
>>> >> >>> the application. Dispatch doesn't seem to like that but erroneously
>>> >> >>> attaches the link 'successfully', though doesnt set a target address
>>> >> >>> as is expected. The client then doesnt notice this happened (its
>>> >> >>> checking for the link being refused, which it wasn't), allowing the
>>> >> >>> application to proceed as far as creating consumers/procuers using
>>> the
>>> >> >>> TemporaryQueue object, with creation of the e.g Consumer then
>>> failing
>>> >> >>> since the attach doesnt contain the needed information and leads to
>>> >> >>> Dispatch detaching it with the error (though it again doesnt
>>> actually
>>> >> >>> indicate its refusing the link during the attach response, as it
>>> >> >>> probably should have in this case).
>>> >> >>>
>>> >> >>> Making the client detect the current failure and having it throw an
>>> >> >>> aexception from createTemporaryQueue is simple enough.
>>> >> >>>
>>> >> >>> Hacking the client to use a dynamic recieving link instead, an
>>> address
>>> >> >>> was returned by Dispatch in the attach response as expected,
>>> however a
>>> >> >>> consumer on the resulting TemporaryQueue object using this address
>>> >> >>> still didnt get the message I sent to the same place. If I also gave
>>> >> >>> some credit on the link backing the TemporaryQeueue object itself
>>> then
>>> >> >>> that link gets sent the message by Dispatch, though this of no use
>>> for
>>> >> >>> the JMS client.
>>> >> >>>
>>> >> >>> Needs some more investigation, and I'll need to discuss with some
>>> >> >>> folks more familiar with Dispatch.
>>> >> >>>
>>> >> >>> Robbie
>>> >> >>>
>>> >> >>> On 26 January 2017 at 13:39, Adel Boutros <[email protected]>
>>> >> wrote:
>>> >> >>>
>>> >> >>>> Hello Robbie,
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> I replaced the "createQueue" with "createTemporaryQueue" for the
>>> reply
>>> >> >>>> consumer and activated PN_TRACE_FRM on Dispatch Router and JMS
>>> Client.
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> PS: As Rabih stated before, we are using the same connection and
>>> same
>>> >> >>>> session to create the  JMSProducer for the request and the
>>> >> JMSConsumer for
>>> >> >>>> the reply.
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> Exception
>>> >> >>>> -------------------
>>> >> >>>> javax.jms.IllegalStateException: The MessageConsumer was closed
>>> due
>>> >> to
>>> >> >>>> an unrecoverable error.
>>> >> >>>> at org.apache.qpid.jms.JmsMessageConsumer.checkClosed(JmsMessag
>>> >> >>>> eConsumer.java:330)
>>> >> >>>> at org.apache.qpid.jms.JmsMessageConsumer.receive(JmsMessageCon
>>> >> >>>> sumer.java:196)
>>> >> >>>> at murex.messaging.client.JmsTest.main(JmsTest.java:57)
>>> >> >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> >> >>>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
>>> >> >>>> ssorImpl.java:62)
>>> >> >>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
>>> >> >>>> thodAccessorImpl.java:43)
>>> >> >>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>> >> >>>> at com.intellij.rt.execution.application.AppMain.main(
>>> >> AppMain.java:147)
>>> >> >>>> Caused by: javax.jms.JMSException: No route to the destination node
>>> >> >>>> [condition = qd:no-route-to-dest]
>>> >> >>>> at org.apache.qpid.jms.provider.amqp.AmqpSupport.convertToExcep
>>> >> >>>> tion(AmqpSupport.java:150)
>>> >> >>>> at org.apache.qpid.jms.provider.amqp.AmqpSupport.convertToExcep
>>> >> >>>> tion(AmqpSupport.java:105)
>>> >> >>>> at org.apache.qpid.jms.provider.amqp.AmqpAbstractResource.remot
>>> >> >>>> elyClosed(AmqpAbstractResource.java:147)
>>> >> >>>> at org.apache.qpid.jms.provider.amqp.AmqpAbstractResource.proce
>>> >> >>>> ssRemoteClose(AmqpAbstractResource.java:251)
>>> >> >>>> at org.apache.qpid.jms.provider.amqp.AmqpProvider.processUpdate
>>> >> >>>> s(AmqpProvider.java:795)
>>> >> >>>> at org.apache.qpid.jms.provider.amqp.AmqpProvider.access$1900(A
>>> >> >>>> mqpProvider.java:90)
>>> >> >>>> at org.apache.qpid.jms.provider.amqp.AmqpProvider$17.run(AmqpPr
>>> >> >>>> ovider.java:699)
>>> >> >>>> at java.util.concurrent.Executors$RunnableAdapter.call(
>>> >> >>>> Executors.java:511)
>>> >> >>>> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>> >> >>>> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFu
>>> >> >>>> tureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>>> >> >>>> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFu
>>> >> >>>> tureTask.run(ScheduledThreadPoolExecutor.java:293)
>>> >> >>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>>> >> >>>> Executor.java:1142)
>>> >> >>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
>>> >> >>>> lExecutor.java:617)
>>> >> >>>> at java.lang.Thread.run(Thread.java:745)
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> -------------------
>>> >> >>>> Dispatch Router (PN_TRACE_FRM=1)
>>> >> >>>> -------------------
>>> >> >>>>
>>> >> >>>> [832220]:  <- SASL
>>> >> >>>> [832220]:  -> SASL
>>> >> >>>> [832220]:0 -> @sasl-mechanisms(64) [sasl-server-mechanisms=@PN_SY
>>> >> >>>> MBOL[:ANONYMOUS]]
>>> >> >>>> [832220]:0 <- @sasl-init(65) [mechanism=:ANONYMOUS,
>>> >> >>>> initial-response=b"", hostname="host-name"]
>>> >> >>>> [832220]:0 -> @sasl-outcome(68) [code=0]
>>> >> >>>> [832220]:  <- AMQP
>>> >> >>>> [832220]:0 <- @open(16) [container-id="ID:9d96ddb8-
>>> >> a334-44c3-954a-2dd910161411:1",
>>> >> >>>> hostname="host-name", max-frame-size=1048576, channel-max=32767,
>>> >> >>>> idle-time-out=30000, desired-capabilities=@PN_SYMBO
>>> >> >>>> L[:"sole-connection-for-container"],
>>> properties={:product="QpidJMS",
>>> >> >>>> :version="0.11.1", :platform="JVM: 1.8.0_111, 25.111-b14, Oracle
>>> >> >>>> Corporation, OS: Windows 7, 6.1, amd64"}]
>>> >> >>>> [832220]:  -> AMQP
>>> >> >>>> [832220]:0 -> @open(16) [container-id="router.10200",
>>> >> >>>> max-frame-size=16384, channel-max=32767, idle-time-out=8000,
>>> >> >>>> offered-capabilities=:"ANONYMOUS-RELAY",
>>> properties={:product="qpid-
>>> >> dispatch-router",
>>> >> >>>> :version="0.7.0"}]
>>> >> >>>> [832220]:0 <- @begin(17) [next-outgoing-id=1, incoming-window=2047,
>>> >> >>>> outgoing-window=2147483647, handle-max=65535]
>>> >> >>>> [832220]:0 -> @begin(17) [remote-channel=0, next-outgoing-id=0,
>>> >> >>>> incoming-window=61, outgoing-window=2147483647]
>>> >> >>>> [832220]:1 <- @begin(17) [next-outgoing-id=1, incoming-window=2047,
>>> >> >>>> outgoing-window=2147483647, handle-max=65535]
>>> >> >>>> [832220]:1 -> @begin(17) [remote-channel=1, next-outgoing-id=0,
>>> >> >>>> incoming-window=61, outgoing-window=2147483647]
>>> >> >>>> [832220]:1 <- @attach(18) [name="qpid-jms:sender:ID:8ec7
>>> >> >>>> 55cd-dc3f-47cc-9f39-f5d15647fe80:1:1:1:$management", handle=0,
>>> >> >>>> role=false, snd-settle-mode=0, rcv-settle-mode=0,
>>> source=@source(40)
>>> >> >>>> [address="ID:8ec755cd-dc3f-47cc-9f39-f5d15647fe80:1:1:1",
>>> durable=0,
>>> >> >>>> expiry-policy=:"session-end", timeout=0, dynamic=false,
>>> >> >>>> outcomes=@PN_SYMBOL[:"amqp:accepted:list",
>>> :"amqp:rejected:list"]],
>>> >> >>>> target=@target(41) [address="$management", durable=0,
>>> >> >>>> expiry-policy=:"session-end", timeout=0, dynamic=false,
>>> >> >>>> capabilities=@PN_SYMBOL[:queue]], incomplete-unsettled=false,
>>> >> >>>> initial-delivery-count=0]
>>> >> >>>> [832220]:1 -> @attach(18) [name="qpid-jms:sender:ID:8ec7
>>> >> >>>> 55cd-dc3f-47cc-9f39-f5d15647fe80:1:1:1:$management", handle=0,
>>> >> >>>> role=true, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40)
>>> >> >>>> [address="ID:8ec755cd-dc3f-47cc-9f39-f5d15647fe80:1:1:1",
>>> durable=0,
>>> >> >>>> timeout=0, dynamic=false, outcomes=@PN_SYMBOL[:"amqp:acc
>>> epted:list",
>>> >> >>>> :"amqp:rejected:list"]], target=@target(41) [address="$management",
>>> >> >>>> durable=0, timeout=0, dynamic=false, capabilities=@PN_SYMBOL[:
>>> >> queue]],
>>> >> >>>> initial-delivery-count=0, max-message-size=0]
>>> >> >>>> [832220]:1 -> @flow(19) [next-incoming-id=1, incoming-window=61,
>>> >> >>>> next-outgoing-id=0, outgoing-window=2147483647, handle=0,
>>> >> delivery-count=0,
>>> >> >>>> link-credit=250, drain=false]
>>> >> >>>> [832220]:0 <- @attach(18) [name="qpid-jms:temp-queue-cre
>>> >> >>>> ator:ID:8ec755cd-dc3f-47cc-9f39-f5d15647fe80:1:1", handle=0,
>>> >> >>>> role=false, snd-settle-mode=0, rcv-settle-mode=0,
>>> source=@source(40)
>>> >> [],
>>> >> >>>> target=@target(41) [durable=0, expiry-policy=:"link-detach",
>>> >> timeout=0,
>>> >> >>>> dynamic=true, dynamic-node-properties={:"lif
>>> >> >>>> etime-policy"=@delete-on-close(43) []}, capabilities=@PN_SYMBOL[:"
>>> >> temporary-queue"]],
>>> >> >>>> incomplete-unsettled=false, initial-delivery-count=0]
>>> >> >>>> [832220]:0 -> @attach(18) [name="qpid-jms:temp-queue-cre
>>> >> >>>> ator:ID:8ec755cd-dc3f-47cc-9f39-f5d15647fe80:1:1", handle=0,
>>> >> role=true,
>>> >> >>>> snd-settle-mode=2, rcv-settle-mode=0, source=@source(40)
>>> [durable=0,
>>> >> >>>> timeout=0, dynamic=false], target=@target(41) [durable=0,
>>> >> >>>> expiry-policy=:"link-detach", timeout=0, dynamic=true,
>>> >> >>>> dynamic-node-properties={:"lifetime-policy"=@delete-on-close(43)
>>> []},
>>> >> >>>> capabilities=@PN_SYMBOL[:"temporary-queue"]],
>>> >> initial-delivery-count=0,
>>> >> >>>> max-message-size=0]
>>> >> >>>> [832220]:0 -> @flow(19) [next-incoming-id=1, incoming-window=61,
>>> >> >>>> next-outgoing-id=0, outgoing-window=2147483647, handle=0,
>>> >> delivery-count=0,
>>> >> >>>> link-credit=250, drain=false]
>>> >> >>>> [832220]:1 <- @attach(18) [name="qpid-jms:receiver:ID:8e
>>> >> >>>> c755cd-dc3f-47cc-9f39-f5d15647fe80:1:1:1:null", handle=1,
>>> role=true,
>>> >> >>>> snd-settle-mode=0, rcv-settle-mode=0, source=@source(40)
>>> [durable=0,
>>> >> >>>> expiry-policy=:"link-detach", timeout=0, dynamic=false,
>>> >> >>>> default-outcome=@modified(39) [delivery-failed=true],
>>> >> >>>> outcomes=@PN_SYMBOL[:"amqp:accepted:list", :"amqp:rejected:list",
>>> >> >>>> :"amqp:released:list", :"amqp:modified:list"],
>>> >> >>>> capabilities=@PN_SYMBOL[:"temporary-queue"]], target=@target(41)
>>> []]
>>> >> >>>> [832220]:1 -> @attach(18) [name="qpid-jms:receiver:ID:8e
>>> >> >>>> c755cd-dc3f-47cc-9f39-f5d15647fe80:1:1:1:null", handle=1,
>>> role=false,
>>> >> >>>> snd-settle-mode=2, rcv-settle-mode=0, source=@source(40)
>>> [durable=0,
>>> >> >>>> timeout=0, dynamic=false], target=@target(41) [durable=0,
>>> timeout=0,
>>> >> >>>> dynamic=false], initial-delivery-count=0, max-message-size=0]
>>> >> >>>> [832220]:1 -> @detach(22) [handle=1, closed=true, error=@error(29)
>>> >> >>>> [condition=:"qd:no-route-to-dest", description="No route to the
>>> >> >>>> destination node"]]
>>> >> >>>> [832220]:1 <- @detach(22) [handle=1, closed=true]
>>> >> >>>> [832220]:1 <- @transfer(20) [handle=0, delivery-id=0,
>>> >> delivery-tag=b"0",
>>> >> >>>> message-format=0] (312) "\x00Sp\xc0\x02\x01A\x00Sr\xc1
>>> >> >>>> )\x04\xa3\x0ex-opt-jms-destQ\x00\xa3\x12x-opt-jms-msg-
>>> >> >>>> typeQ\x01\x00Ss\xc0O\x0a\xa1/ID:8ec755cd-dc3f-47cc-9f39-
>>> >> >>>> f5d15647fe80:1:1:1-1@\xa1\x0b$management@@@@@@\x83\x00\x00\
>>> >> >>>> x01Y\xda\xf2\xa6'\x00St\xc1U\x06\xa1\x04name\xa1\x0frabih.
>>> >> >>>> connector\xa1\x04type\xa1"org.apache.qpid.dispatch.
>>> >> >>>> connector\xa1\x09operation\xa1\x06CREATE\x00Sw\xc1P\x08\
>>> >> >>>> xa1\x04role\xa1\x0froute-container\xa1\x04port\xa1\
>>> >> >>>> x04port\xa1\x04name\xa1\x0frabih.connector\xa1\
>>> >> >>>> x04addr\xa1\x0dbrokerMachine"
>>> >> >>>> [832220]:1 -> @flow(19) [next-incoming-id=2, incoming-window=61,
>>> >> >>>> next-outgoing-id=0, outgoing-window=2147483647, handle=0,
>>> >> delivery-count=1,
>>> >> >>>> link-credit=250, drain=false]
>>> >> >>>> [832220]:1 -> @disposition(21) [role=true, first=0, last=0,
>>> >> >>>> settled=true, state=@accepted(36) []]
>>> >> >>>> [832220]:0 <- @close(24) []
>>> >> >>>> [832220]:  <- EOS
>>> >> >>>> [832220]:0 -> @close(24) []
>>> >> >>>> [832220]:  -> EOS
>>> >> >>>> Closed x.x.x.x:8961
>>> >> >>>> Unexpected poll events: 0020 on x.x.x.x:8961
>>> >> >>>> Unexpected poll events: 0020 on x.x.x.x:8961
>>> >> >>>>
>>> >> >>>> ------------------
>>> >> >>>> JMS Client (PN_TRACE_FRM=1)
>>> >> >>>> ------------------
>>> >> >>>> [1244186219:0] -> Open{ containerId='ID:da8ce84a-c69b-
>>> >> 4a22-9b22-69d27a017a83:1',
>>> >> >>>> hostname='host-name', maxFrameSize=1048576, channelMax=32767,
>>> >> >>>> idleTimeOut=30000, outgoingLocales=null, incomingLocales=null,
>>> >> >>>> offeredCapabilities=null, desiredCapabilities=[sole-
>>> >> connection-for-container],
>>> >> >>>> properties={product=QpidJMS, version=0.11.1, platform=JVM:
>>> 1.8.0_111,
>>> >> >>>> 25.111-b14, Oracle Corporation, OS: Windows 7, 6.1, amd64}}
>>> >> >>>> [1244186219:0] <- Open{ containerId='router.10200',
>>> hostname='null',
>>> >> >>>> maxFrameSize=16384, channelMax=32767, idleTimeOut=8000,
>>> >> >>>> outgoingLocales=null, incomingLocales=null, offeredCapabilities=[
>>> >> ANONYMOUS-RELAY],
>>> >> >>>> desiredCapabilities=null, properties={product=qpid-dispa
>>> tch-router,
>>> >> >>>> version=0.7.0}}
>>> >> >>>> [1244186219:0] -> Begin{remoteChannel=null, nextOutgoingId=1,
>>> >> >>>> incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535,
>>> >> >>>> offeredCapabilities=null, desiredCapabilities=null,
>>> properties=null}
>>> >> >>>> [1244186219:0] <- Begin{remoteChannel=0, nextOutgoingId=0,
>>> >> >>>> incomingWindow=61, outgoingWindow=2147483647, handleMax=4294967295,
>>> >> >>>> offeredCapabilities=null, desiredCapabilities=null,
>>> properties=null}
>>> >> >>>> [1244186219:1] -> Begin{remoteChannel=null, nextOutgoingId=1,
>>> >> >>>> incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535,
>>> >> >>>> offeredCapabilities=null, desiredCapabilities=null,
>>> properties=null}
>>> >> >>>> [1244186219:1] <- Begin{remoteChannel=1, nextOutgoingId=0,
>>> >> >>>> incomingWindow=61, outgoingWindow=2147483647, handleMax=4294967295,
>>> >> >>>> offeredCapabilities=null, desiredCapabilities=null,
>>> properties=null}
>>> >> >>>> [1244186219:1] -> Attach{name='qpid-jms:sender:I
>>> >> >>>> D:53f2be62-ad72-4193-a824-3293ffc57168:1:1:1:$management',
>>> handle=0,
>>> >> >>>> role=SENDER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST,
>>> >> >>>> source=Source{address='ID:53f2be62-ad72-4193-a824-
>>> >> 3293ffc57168:1:1:1',
>>> >> >>>> durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false,
>>> >> >>>> dynamicNodeProperties=null, distributionMode=null, filter=null,
>>> >> >>>> defaultOutcome=null, outcomes=[amqp:accepted:list,
>>> >> amqp:rejected:list],
>>> >> >>>> capabilities=null}, target=Target{address='$management',
>>> >> durable=NONE,
>>> >> >>>> expiryPolicy=SESSION_END, timeout=0, dynamic=false,
>>> >> >>>> dynamicNodeProperties=null, capabilities=[queue]}, unsettled=null,
>>> >> >>>> incompleteUnsettled=false, initialDeliveryCount=0,
>>> >> maxMessageSize=null,
>>> >> >>>> offeredCapabilities=null, desiredCapabilities=null,
>>> properties=null}
>>> >> >>>> [1244186219:1] <- Attach{name='qpid-jms:sender:I
>>> >> >>>> D:53f2be62-ad72-4193-a824-3293ffc57168:1:1:1:$management',
>>> handle=0,
>>> >> >>>> role=RECEIVER, sndSettleMode=MIXED, rcvSettleMode=FIRST,
>>> >> >>>> source=Source{address='ID:53f2be62-ad72-4193-a824-
>>> >> 3293ffc57168:1:1:1',
>>> >> >>>> durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false,
>>> >> >>>> dynamicNodeProperties=null, distributionMode=null, filter=null,
>>> >> >>>> defaultOutcome=null, outcomes=[amqp:accepted:list,
>>> >> amqp:rejected:list],
>>> >> >>>> capabilities=null}, target=Target{address='$management',
>>> >> durable=NONE,
>>> >> >>>> expiryPolicy=SESSION_END, timeout=0, dynamic=false,
>>> >> >>>> dynamicNodeProperties=null, capabilities=[queue]}, unsettled=null,
>>> >> >>>> incompleteUnsettled=false, initialDeliveryCount=0,
>>> maxMessageSize=0,
>>> >> >>>> offeredCapabilities=null, desiredCapabilities=null,
>>> properties=null}
>>> >> >>>> [1244186219:1] <- Flow{nextIncomingId=1, incomingWindow=61,
>>> >> >>>> nextOutgoingId=0, outgoingWindow=2147483647, handle=0,
>>> >> deliveryCount=0,
>>> >> >>>> linkCredit=250, available=null, drain=false, echo=false,
>>> >> properties=null}
>>> >> >>>> [1244186219:0] -> Attach{name='qpid-jms:temp-que
>>> >> >>>> ue-creator:ID:53f2be62-ad72-4193-a824-3293ffc57168:1:1', handle=0,
>>> >> >>>> role=SENDER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST,
>>> >> >>>> source=Source{address='null', durable=NONE,
>>> expiryPolicy=SESSION_END,
>>> >> >>>> timeout=0, dynamic=false, dynamicNodeProperties=null,
>>> >> >>>> distributionMode=null, filter=null, defaultOutcome=null,
>>> >> outcomes=null,
>>> >> >>>> capabilities=null}, target=Target{address='null', durable=NONE,
>>> >> >>>> expiryPolicy=LINK_DETACH, timeout=0, dynamic=true,
>>> >> >>>> dynamicNodeProperties={lifetime-policy=DeleteOnClose{}},
>>> >> >>>> capabilities=[temporary-queue]}, unsettled=null,
>>> >> >>>> incompleteUnsettled=false, initialDeliveryCount=0,
>>> >> maxMessageSize=null,
>>> >> >>>> offeredCapabilities=null, desiredCapabilities=null,
>>> properties=null}
>>> >> >>>> [1244186219:0] <- Attach{name='qpid-jms:temp-que
>>> >> >>>> ue-creator:ID:53f2be62-ad72-4193-a824-3293ffc57168:1:1', handle=0,
>>> >> >>>> role=RECEIVER, sndSettleMode=MIXED, rcvSettleMode=FIRST,
>>> >> >>>> source=Source{address='null', durable=NONE,
>>> expiryPolicy=SESSION_END,
>>> >> >>>> timeout=0, dynamic=false, dynamicNodeProperties=null,
>>> >> >>>> distributionMode=null, filter=null, defaultOutcome=null,
>>> >> outcomes=null,
>>> >> >>>> capabilities=null}, target=Target{address='null', durable=NONE,
>>> >> >>>> expiryPolicy=LINK_DETACH, timeout=0, dynamic=true,
>>> >> >>>> dynamicNodeProperties={lifetime-policy=DeleteOnClose{}},
>>> >> >>>> capabilities=[temporary-queue]}, unsettled=null,
>>> >> >>>> incompleteUnsettled=false, initialDeliveryCount=0,
>>> maxMessageSize=0,
>>> >> >>>> offeredCapabilities=null, desiredCapabilities=null,
>>> properties=null}
>>> >> >>>> [1244186219:0] <- Flow{nextIncomingId=1, incomingWindow=61,
>>> >> >>>> nextOutgoingId=0, outgoingWindow=2147483647, handle=0,
>>> >> deliveryCount=0,
>>> >> >>>> linkCredit=250, available=null, drain=false, echo=false,
>>> >> properties=null}
>>> >> >>>> [1244186219:1] -> Attach{name='qpid-jms:receiver
>>> >> >>>> :ID:53f2be62-ad72-4193-a824-3293ffc57168:1:1:1:null', handle=1,
>>> >> >>>> role=RECEIVER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST,
>>> >> >>>> source=Source{address='null', durable=NONE,
>>> expiryPolicy=LINK_DETACH,
>>> >> >>>> timeout=0, dynamic=false, dynamicNodeProperties=null,
>>> >> >>>> distributionMode=null, filter=null, defaultOutcome=Modified{
>>> >> deliveryFailed=true,
>>> >> >>>> undeliverableHere=null, messageAnnotations=null},
>>> >> >>>> outcomes=[amqp:accepted:list, amqp:rejected:list,
>>> amqp:released:list,
>>> >> >>>> amqp:modified:list], capabilities=[temporary-queue]},
>>> >> >>>> target=Target{address='null', durable=NONE,
>>> expiryPolicy=SESSION_END,
>>> >> >>>> timeout=0, dynamic=false, dynamicNodeProperties=null,
>>> >> capabilities=null},
>>> >> >>>> unsettled=null, incompleteUnsettled=false,
>>> initialDeliveryCount=null,
>>> >> >>>> maxMessageSize=null, offeredCapabilities=null,
>>> >> desiredCapabilities=null,
>>> >> >>>> properties=null}
>>> >> >>>> [1244186219:1] <- Attach{name='qpid-jms:receiver
>>> >> >>>> :ID:53f2be62-ad72-4193-a824-3293ffc57168:1:1:1:null', handle=1,
>>> >> >>>> role=SENDER, sndSettleMode=MIXED, rcvSettleMode=FIRST,
>>> >> >>>> source=Source{address='null', durable=NONE,
>>> expiryPolicy=SESSION_END,
>>> >> >>>> timeout=0, dynamic=false, dynamicNodeProperties=null,
>>> >> >>>> distributionMode=null, filter=null, defaultOutcome=null,
>>> >> outcomes=null,
>>> >> >>>> capabilities=null}, target=Target{address='null', durable=NONE,
>>> >> >>>> expiryPolicy=SESSION_END, timeout=0, dynamic=false,
>>> >> >>>> dynamicNodeProperties=null, capabilities=null}, unsettled=null,
>>> >> >>>> incompleteUnsettled=false, initialDeliveryCount=0,
>>> maxMessageSize=0,
>>> >> >>>> offeredCapabilities=null, desiredCapabilities=null,
>>> properties=null}
>>> >> >>>> [1244186219:1] <- Detach{handle=1, closed=true,
>>> >> >>>> error=Error{condition=qd:no-route-to-dest, description='No route
>>> to
>>> >> the
>>> >> >>>> destination node', info=null}}
>>> >> >>>> [1244186219:1] -> Detach{handle=1, closed=true, error=null}
>>> >> >>>> [1244186219:1] -> Transfer{handle=0, deliveryId=0, deliveryTag=0,
>>> >> >>>> messageFormat=0, settled=null, more=false, rcvSettleMode=null,
>>> >> state=null,
>>> >> >>>> resume=false, aborted=false, batchable=false} (312)
>>> >> >>>> "\x00Sp\xc0\x02\x01A\x00Sr\xc1)\x04\xa3\x0ex-opt-jms-destQ\
>>> >> >>>> x00\xa3\x12x-opt-jms-msg-typeQ\x01\x00Ss\xc0O\x0a\xa1/
>>> >> >>>> ID:53f2be62-ad72-4193-a824-3293ffc57168:1:1:1-1@\xa1\x0b$man
>>> agement@
>>> >> >>>> @@@@@\x83\x00\x00\x01Y\xda\xf4\xd7p\x00St\xc1U\
>>> >> >>>> x06\xa1\x04name\xa1\x0frabih.connector\xa1\x04type\xa1"org.
>>> >> >>>> apache.qpid.dispatch.connector\xa1\x09operation\
>>> >> >>>> xa1\x06CREATE\x00Sw\xc1P\x08\xa1\x04role\xa1\x0froute-
>>> >> >>>> container\xa1\x04port\xa1\x04port\xa1\x04name\xa1\
>>> >> >>>> x0frabih.connector\xa1\x04addr\xa1\x0dbrokerMachine"
>>> >> >>>> [1244186219:1] <- Flow{nextIncomingId=2, incomingWindow=61,
>>> >> >>>> nextOutgoingId=0, outgoingWindow=2147483647, handle=0,
>>> >> deliveryCount=1,
>>> >> >>>> linkCredit=250, available=null, drain=false, echo=false,
>>> >> properties=null}
>>> >> >>>> [1244186219:1] <- Disposition{role=RECEIVER, first=0, last=0,
>>> >> >>>> settled=true, state=Accepted{}, batchable=false}
>>> >> >>>> [1244186219:0] -> Close{error=null}
>>> >> >>>> [1244186219:0] <- Close{error=null}
>>> >> >>>>
>>> >> >>>> Regards,
>>> >> >>>>
>>> >> >>>> Adel
>>> >> >>>>
>>> >> >>>> ________________________________
>>> >> >>>> From: Robbie Gemmell <[email protected]>
>>> >> >>>> Sent: Tuesday, January 24, 2017 7:33:32 PM
>>> >> >>>> To: [email protected]
>>> >> >>>> Subject: Re: [Qpid Dispatch] Manage Dispatch router from Qpid Jms
>>> >> >>>>
>>> >> >>>> That looks fine at first glance. Its possible there is an issue in
>>> >> >>>> there needing looked it. I am travelling this week so may not get
>>> to
>>> >> >>>> look until afterwards, but will try to give things a look at. If
>>> you
>>> >> >>>> could give more detail on the exception and maybe a protocol trace
>>> >> >>>> that might be useful.
>>> >> >>>>
>>> >> >>>> Robbie
>>> >> >>>>
>>> >> >>>> On 24 January 2017 at 13:14, Rabih M <[email protected]>
>>> wrote:
>>> >> >>>>
>>> >> >>>>> Hello Robbie,
>>> >> >>>>>
>>> >> >>>>> Thanks for you for your answer.
>>> >> >>>>> I will try the solutions you proposed.
>>> >> >>>>>
>>> >> >>>>> I need just need one clarification. Concerning the Jms, I already
>>> >> tried
>>> >> >>>>> to
>>> >> >>>>> use a temporary queue but it didn't work. May be i am using it
>>> wrong.
>>> >> >>>>> Here
>>> >> >>>>> is what i did:
>>> >> >>>>>
>>> >> >>>>> ...
>>> >> >>>>> Session session = connection.createSession(false,
>>> >> >>>>> Session.AUTO_ACKNOWLEDGE);
>>> >> >>>>> Queue queue = session.createQueue("$management");
>>> >> >>>>> MessageProducer producer = session.createProducer(queue);
>>> >> >>>>>
>>> >> >>>>> Queue tempDest = session.createTemporaryQueue();
>>> >> >>>>> MessageConsumer responseConsumer = session.createConsumer(tempDes
>>> t);
>>> >> >>>>> connection.start();
>>> >> >>>>>
>>> >> >>>>> ObjectMessage objectMessage = session.createObjectMessage();
>>> >> >>>>> objectMessage.setJMSReplyTo(tempDest);
>>> >> >>>>> //fill the rest of the parameters ...
>>> >> >>>>> producer.send(objectMessage);
>>> >> >>>>> ObjectMessage replyMessage = (ObjectMessage)
>>> >> >>>>> responseConsumer.receive(1000);
>>> >> >>>>> ...
>>> >> >>>>>
>>> >> >>>>> I was getting an exception on the .receive() from the dispatch
>>> router
>>> >> >>>>> saying that the reply-to address is bad...
>>> >> >>>>> Should i create the temporary queue and the consumer from a
>>> different
>>> >> >>>>> session then the producer?
>>> >> >>>>>
>>> >> >>>>> Best regards,
>>> >> >>>>> Rabih
>>> >> >>>>>
>>> >> >>>>>
>>> >> >>>>> On Tue, Jan 24, 2017 at 5:37 PM, Robbie Gemmell <
>>> >> >>>>> [email protected]>
>>> >> >>>>> wrote:
>>> >> >>>>>
>>> >> >>>>> The session.createTemporaryQueue(); method is how JMS creates
>>> >> >>>>>> temporary destinations for use in reply-to scenarios. The
>>> dispatch
>>> >> >>>>>> tools will be doing essentially the same thing under the covers
>>> for
>>> >> >>>>>> theirs.
>>> >> >>>>>>
>>> >> >>>>>> Both work by creating a 'dynamic' link attachment, with the
>>> server
>>> >> >>>>>> returning an address for the dynamic attach to the client. One
>>> key
>>> >> >>>>>> difference is with JMS you create the temporary destination (for
>>> >> which
>>> >> >>>>>> the client uses a dynamic sender link to create), then separately
>>> >> >>>>>> create a receiver using it (and in turn the address associated
>>> with
>>> >> >>>>>> it), whereas non-JMS client/tools will typically just create a
>>> >> single
>>> >> >>>>>> dynamic receiver link and use its address for the reply-to.
>>> >> >>>>>>
>>> >> >>>>>> For proton-j, there aren't any examples for this, but you you
>>> >> >>>>>> essentially would change the link opening to not specify an
>>> address,
>>> >> >>>>>> and instead set the source(for a receiver) or target (for a
>>> sender)
>>> >> to
>>> >> >>>>>> be 'dynamic'. You would then inspect the remoteSource or
>>> >> remoteTarget
>>> >> >>>>>> once the link had been reemotely attached, and get its
>>> >> >>>>>> (server-generated) address, then use this as your reply-to.
>>> >> >>>>>>
>>> >> >>>>>> Robbie
>>> >> >>>>>>
>>> >> >>>>>> On 23 January 2017 at 11:00, Rabih M <[email protected]>
>>> >> wrote:
>>> >> >>>>>>
>>> >> >>>>>>> Hello,
>>> >> >>>>>>>
>>> >> >>>>>>> When I added to the JMS test the ".setJMSReplyTo()" queue, like
>>> you
>>> >> >>>>>>> suggested, it worked.
>>> >> >>>>>>> But I cheated a little to make it work because I did not find a
>>> >> way in
>>> >> >>>>>>>
>>> >> >>>>>> JMS
>>> >> >>>>>>
>>> >> >>>>>>> to create a local queue. So I created a queue on the
>>> qpid-dispatch
>>> >> and
>>> >> >>>>>>>
>>> >> >>>>>> read
>>> >> >>>>>>
>>> >> >>>>>>> the result from it. You can check the attached code.
>>> >> >>>>>>>
>>> >> >>>>>>> Is there any way using qpid-jms to create a local queue on the
>>> >> client
>>> >> >>>>>>>
>>> >> >>>>>> side
>>> >> >>>>>>
>>> >> >>>>>>> to serve as a reply to address?
>>> >> >>>>>>>
>>> >> >>>>>>> For the proton-j test, I have the same question as above. I saw
>>> >> that
>>> >> >>>>>>> it
>>> >> >>>>>>>
>>> >> >>>>>> can
>>> >> >>>>>>
>>> >> >>>>>>> be done with the C++ API. Are there any examples for proton-j or
>>> >> >>>>>>>
>>> >> >>>>>> something
>>> >> >>>>>>
>>> >> >>>>>>> that can help me?
>>> >> >>>>>>>
>>> >> >>>>>>> I saw may be in proton we don't need a local queue, may be we
>>> can
>>> >> get
>>> >> >>>>>>> the
>>> >> >>>>>>> address of the consumer directly and pass it in reply-to field.
>>> Is
>>> >> it
>>> >> >>>>>>> correct?
>>> >> >>>>>>>
>>> >> >>>>>>> Thanks,
>>> >> >>>>>>> Rabih
>>> >> >>>>>>>
>>> >> >>>>>>>
>>> >> >>>>>>>
>>> >> >>>>>>> On Fri, Jan 20, 2017 at 10:18 PM, Rob Godfrey <
>>> >> >>>>>>> [email protected]>
>>> >> >>>>>>> wrote:
>>> >> >>>>>>>
>>> >> >>>>>>>>
>>> >> >>>>>>>> On 20 January 2017 at 21:45, Ganesh Murthy <[email protected]
>>> >
>>> >> >>>>>>>> wrote:
>>> >> >>>>>>>>
>>> >> >>>>>>>>
>>> >> >>>>>>>>>
>>> >> >>>>>>>>> ----- Original Message -----
>>> >> >>>>>>>>>
>>> >> >>>>>>>>>> From: "Robbie Gemmell" <[email protected]>
>>> >> >>>>>>>>>> To: [email protected]
>>> >> >>>>>>>>>> Sent: Friday, January 20, 2017 2:18:45 PM
>>> >> >>>>>>>>>> Subject: Re: [Qpid Dispatch] Manage Dispatch router from Qpid
>>> >> Jms
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>> On 20 January 2017 at 19:06, Gordon Sim <[email protected]>
>>> >> wrote:
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>>> On 20/01/17 18:40, Rabih M wrote:
>>> >> >>>>>>>>>>>
>>> >> >>>>>>>>>>>>
>>> >> >>>>>>>>>>>> I inserted the map directly into the ObjectMessage like you
>>> >> told
>>> >> >>>>>>>>>>>>
>>> >> >>>>>>>>>>> me
>>> >> >>>>>>
>>> >> >>>>>>> Robbie and it worked.
>>> >> >>>>>>>>>>>>
>>> >> >>>>>>>>>>>> But like the proton-j case, the connector is not being
>>> >> created on
>>> >> >>>>>>>>>>>> the
>>> >> >>>>>>>>>>>> Qpid-dispatch side.
>>> >> >>>>>>>>>>>> I attached the amqp communication into this mail.
>>> >> >>>>>>>>>>>>
>>> >> >>>>>>>>>>>
>>> >> >>>>>>>>>>>
>>> >> >>>>>>>>>>> The last frame in that file is incomplete (the previous
>>> error
>>> >> >>>>>>>>>>>
>>> >> >>>>>>>>>> regarding the
>>> >> >>>>>>>>>
>>> >> >>>>>>>>>> map body may or may not be a wireshark issue),but that last
>>> >> frame
>>> >> >>>>>>>>>>>
>>> >> >>>>>>>>>> is
>>> >> >>>>>>
>>> >> >>>>>>> likely
>>> >> >>>>>>>>>
>>> >> >>>>>>>>>> the response which would indicate the success or otherwise of
>>> >> the
>>> >> >>>>>>>>>>>
>>> >> >>>>>>>>>> frame. Is
>>> >> >>>>>>>>>
>>> >> >>>>>>>>>> there anything logged by the router?
>>> >> >>>>>>>>>>>
>>> >> >>>>>>>>>>> If you can, just running the router with PN_TRACE_FRM=1 is
>>> >> simpler
>>> >> >>>>>>>>>>> for
>>> >> >>>>>>>>>>>
>>> >> >>>>>>>>>> this
>>> >> >>>>>>>>>
>>> >> >>>>>>>>>> sort of thing in my view.
>>> >> >>>>>>>>>>>
>>> >> >>>>>>>>>>>
>>> >> >>>>>>>>>> As Gordon suggests, the proton trace logs might be more
>>> helpful.
>>> >> >>>>>>>>>> You
>>> >> >>>>>>>>>> can also do that with proton-j, and this the JMS client too
>>> >> since
>>> >> >>>>>>>>>> it
>>> >> >>>>>>>>>> uses proton-j.
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>> One key difference from the qdmanage case is you are not
>>> >> setting a
>>> >> >>>>>>>>>> reply-to value or correlation-id to use along with it. I
>>> don't
>>> >> know
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>> if
>>> >> >>>>>>
>>> >> >>>>>>> the router cares about not being able to send a response or not
>>> >> >>>>>>>>>> though, but it might.
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>
>>> >> >>>>>>>>> You could add the following to your dispatch router conf file
>>> >> >>>>>>>>> (qdrouterd.conf) and restart the router (This will enable
>>> trace
>>> >> >>>>>>>>>
>>> >> >>>>>>>> logging)
>>> >> >>>>>>
>>> >> >>>>>>>
>>> >> >>>>>>>>> log {
>>> >> >>>>>>>>>     module: DEFAULT
>>> >> >>>>>>>>>     enable: trace+
>>> >> >>>>>>>>>     output: /path/to/log/qdrouterd.log
>>> >> >>>>>>>>> }
>>> >> >>>>>>>>>
>>> >> >>>>>>>>> When you run your management request, you will see proton
>>> frame
>>> >> >>>>>>>>> trace
>>> >> >>>>>>>>> and
>>> >> >>>>>>>>> you will see additional logging out of the dispatch Python
>>> agent
>>> >> -
>>> >> >>>>>>>>> something like the following -
>>> >> >>>>>>>>>
>>> >> >>>>>>>>> Fri Jan 20 15:27:23 2017 AGENT (debug) Agent request
>>> >> >>>>>>>>> Message(address=None,
>>> >> >>>>>>>>> properties={'operation': 'CREATE', 'type':
>>> >> >>>>>>>>> 'org.apache.qpid.dispatch.connector',
>>> >> >>>>>>>>> 'name': 'rabih.connector'}, body={'port': '5673', 'role':
>>> >> >>>>>>>>> 'route-container', 'addr': 'broker-machine', 'name':
>>> >> >>>>>>>>>
>>> >> >>>>>>>> 'rabih.connector'},
>>> >> >>>>>>
>>> >> >>>>>>> reply_to='amqp:/_topo/0/Router.A/temp.i4H_ZOvee1xhGxx',
>>> >> >>>>>>>>> correlation_id=1L)
>>> >> >>>>>>>>> Fri Jan 20 15:27:23 2017 CONN_MGR (info) Configured Connector:
>>> >> >>>>>>>>> broker-machine:5673 proto=any, role=route-container
>>> >> >>>>>>>>> Fri Jan 20 15:27:23 2017 AGENT (debug) Add entity:
>>> >> >>>>>>>>> ConnectorEntity(addr=broker-machine, allowRedirect=True,
>>> cost=1,
>>> >> >>>>>>>>> host=127.0.0.1, identity=connector/127.0.0.1:
>>> >> 5673:rabih.connector,
>>> >> >>>>>>>>> idleTimeoutSeconds=16, maxFrameSize=16384, maxSessions=32768,
>>> >> >>>>>>>>> name=rabih.connector, port=5673, role=route-container,
>>> >> >>>>>>>>> stripAnnotations=both, type=org.apache.qpid.dispatch.
>>> connector,
>>> >> >>>>>>>>> verifyHostName=True)
>>> >> >>>>>>>>>
>>> >> >>>>>>>>> The Python management agent will not process your request if
>>> >> there
>>> >> >>>>>>>>> is
>>> >> >>>>>>>>>
>>> >> >>>>>>>> no
>>> >> >>>>>>
>>> >> >>>>>>> reply_to as seen here -
>>> >> >>>>>>>>>
>>> >> >>>>>>>>> https://github.com/apache/qpid-dispatch/blob/master/
>>> >> >>>>>>>>> python/qpid_dispatch_internal/management/agent.py#L822
>>> >> >>>>>>>>>
>>> >> >>>>>>>>>
>>> >> >>>>>>>>>
>>> >> >>>>>>>>> Can I ask why the agent doesn't process the request?  Just
>>> >> because
>>> >> >>>>>>>> there
>>> >> >>>>>>>> is
>>> >> >>>>>>>> a reply-to doesn't mean that the sender will be around to
>>> actually
>>> >> >>>>>>>> hear
>>> >> >>>>>>>> the
>>> >> >>>>>>>> reply, so it seems a bit arbitrary to say that because we
>>> *know*
>>> >> the
>>> >> >>>>>>>> sender
>>> >> >>>>>>>> won't learn of the outcome that we won't do anything... The
>>> spec
>>> >> >>>>>>>> draft
>>> >> >>>>>>>> doesn't currently say anything about this (obviously it should
>>> >> do),
>>> >> >>>>>>>> but
>>> >> >>>>>>>>
>>> >> >>>>>>> my
>>> >> >>>>>>
>>> >> >>>>>>> expectation would certainly be that a request would be processed
>>> >> even
>>> >> >>>>>>>> if
>>> >> >>>>>>>> the replyTo address was not present (or ended up not routing
>>> >> >>>>>>>> anywhere).
>>> >> >>>>>>>> This is also how the Qpid Broker for Java implements this case.
>>> >> >>>>>>>>
>>> >> >>>>>>>> -- Rob
>>> >> >>>>>>>>
>>> >> >>>>>>>>
>>> >> >>>>>>>> Thanks.
>>> >> >>>>>>>>>
>>> >> >>>>>>>>>
>>> >> >>>>>>>>>> Robbie
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>> ------------------------------------------------------------
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>> ---------
>>> >> >>>>>>
>>> >> >>>>>>> To unsubscribe, e-mail: [email protected]
>>> >> >>>>>>>>>> For additional commands, e-mail: [email protected]
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>> ------------------------------------------------------------
>>> >> >>>>>>>>> ---------
>>> >> >>>>>>>>> To unsubscribe, e-mail: [email protected]
>>> >> >>>>>>>>> For additional commands, e-mail: [email protected]
>>> >> >>>>>>>>>
>>> >> >>>>>>>>>
>>> >> >>>>>>>>>
>>> >> >>>>>>>
>>> >> >>>>>>>
>>> >> >>>>>>>
>>> >> >>>>>>> ------------------------------------------------------------
>>> >> ---------
>>> >> >>>>>>> To unsubscribe, e-mail: [email protected]
>>> >> >>>>>>> For additional commands, e-mail: [email protected]
>>> >> >>>>>>>
>>> >> >>>>>>
>>> >> >>>>>> ------------------------------------------------------------
>>> >> ---------
>>> >> >>>>>> To unsubscribe, e-mail: [email protected]
>>> >> >>>>>> For additional commands, e-mail: [email protected]
>>> >> >>>>>>
>>> >> >>>>>>
>>> >> >>>>>>
>>> >> >>>> ------------------------------------------------------------
>>> ---------
>>> >> >>>> To unsubscribe, e-mail: [email protected]
>>> >> >>>> For additional commands, e-mail: [email protected]
>>> >> >>>>
>>> >> >>>>
>>> >> >>> ------------------------------------------------------------
>>> ---------
>>> >> >>> To unsubscribe, e-mail: [email protected]
>>> >> >>> For additional commands, e-mail: [email protected]
>>> >> >>>
>>> >> >>>
>>> >> >> ------------------------------------------------------------
>>> ---------
>>> >> >> To unsubscribe, e-mail: [email protected]
>>> >> >> For additional commands, e-mail: [email protected]
>>> >> >>
>>> >> >>
>>> >>
>>> >> ---------------------------------------------------------------------
>>> >> To unsubscribe, e-mail: [email protected]
>>> >> For additional commands, e-mail: [email protected]
>>> >>
>>> >>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to