Author |
Message
|
4integration |
Posted: Thu Oct 15, 2009 11:07 am Post subject: JMS Request/Reply |
|
|
 Disciple
Joined: 04 Sep 2006 Posts: 197 Location: Gothenburg, Sweden
|
Hello,
Doing some thinking and would like to have input/feedback...
- We have many WMQ queue managers
- We have a service provider with a request/reply interface over WMQ and connected to QMGR X1 with a "service request queue" SPQ1 (a local queue)
- We have many service consumers; each connected to "their" QMGR (not X1). They define a remote queue e.g. APP1.SPQ1.REQ from their QMGR to X1/SPQ1. Also they have a local queue for the reply APP1.SPQ1.REPLY on their QMGR
- When doing the request they define JMSReplyTo as "queue://MYQMGR/APP1.SPQ1.REPLY"
The service provider don't know anything about the consumers and where they are located. It will just process the request and post the reply to the destination where it's told to.
Question:
- How can/should the service provider know the hostname, port, channel,..etc to use ?? (without making too tight coupling)
Provider and consumers are using JMS or XMS. _________________ Best regards
4 Integration |
|
Back to top |
|
 |
Vitor |
Posted: Thu Oct 15, 2009 11:31 am Post subject: Re: JMS Request/Reply |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
4integration wrote: |
Question:
- How can/should the service provider know the hostname, port, channel,..etc to use ?? (without making too tight coupling)
|
The service provider's WMQ admin should provide a route back to the requesting queue manager (channels etc). If the reply is addressed to the correct queue manager then WMQ will route it automatically.
For pub/sub it's the same as a traditional point-to-point application; the application shouldn't need to know (or care) about things like hostnames, channels & other infrastructure.
If you have a large number of possible queue managers, consider using a cluster. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
4integration |
Posted: Thu Oct 15, 2009 11:32 pm Post subject: |
|
|
 Disciple
Joined: 04 Sep 2006 Posts: 197 Location: Gothenburg, Sweden
|
Hello,
So the service provider can be connected to it's queue manager X1 and send the reply message to that containing the destination "queue://MYQMGR/APP1.SPQ1.REPLY" (i.e. non existing queue on X1) but X1 have routing knowledge from X1 to MYQMGR and therefore takes care of the transport.
Is that correct interpreted?
I will contact the admins here but for my interest....is that handled via sender-receiver channels? _________________ Best regards
4 Integration |
|
Back to top |
|
 |
Vitor |
Posted: Fri Oct 16, 2009 4:59 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
4integration wrote: |
So the service provider can be connected to it's queue manager X1 and send the reply message to that containing the destination "queue://MYQMGR/APP1.SPQ1.REPLY" (i.e. non existing queue on X1) but X1 have routing knowledge from X1 to MYQMGR and therefore takes care of the transport.
Is that correct interpreted? |
Yes - this is basic, basic WMQ. The Intercommunication manual describes this.
4integration wrote: |
I will contact the admins here but for my interest....is that handled via sender-receiver channels? |
Yes, or by whatever other means the admins have decided to use to link the queue managers together. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
4integration |
Posted: Mon Oct 26, 2009 9:40 am Post subject: |
|
|
 Disciple
Joined: 04 Sep 2006 Posts: 197 Location: Gothenburg, Sweden
|
I have a service provider (using XMS and connected to QMGR_1) that gets a message on the listener containing JMSReplyTo = "queue://QMGR_X/CONSUMER.REPLY.IN" when looking at the message RFHUtil.
In the service provider I dump the JMSReplyTo and all it says "queue:///CONSUMER.REPLY.IN" i.e dropping the queue manager info.
Why is queue manager missing?
XMS Code:
Code: |
message.JMSReplyTo.ToString() |
gives:
Quote: |
queue:///CONSUMER.REPLY.IN |
JMS Code picking the same message:
Code: |
msg.getJMSReplyTo().toString() |
gives:
Quote: |
queue://QMGR_X/CONSUMER.REPLY.IN |
Smells like a bug in XMS impl right?? _________________ Best regards
4 Integration |
|
Back to top |
|
 |
4integration |
Posted: Mon Oct 26, 2009 1:11 pm Post subject: |
|
|
 Disciple
Joined: 04 Sep 2006 Posts: 197 Location: Gothenburg, Sweden
|
Upgraded to WMQ Client 7.0.1 (from 6.0.2.7) and XMS v.2.0 (from v 1.2.7.0) which seems to solve that problem. _________________ Best regards
4 Integration |
|
Back to top |
|
 |
4integration |
Posted: Tue Oct 27, 2009 8:02 am Post subject: |
|
|
 Disciple
Joined: 04 Sep 2006 Posts: 197 Location: Gothenburg, Sweden
|
PMR reported _________________ Best regards
4 Integration |
|
Back to top |
|
 |
|