Author |
Message
|
TEdwards |
Posted: Fri Mar 26, 2010 9:32 am Post subject: Posting a message on a specific clustered queue. |
|
|
Newbie
Joined: 11 May 2006 Posts: 4
|
I have a MQ cluster and the same queue REPLY_QUEUE, exists on more than one Queue Manager in the cluster, e.g. QM_A, QM_B, QM_C, etc.. and another Queue Manager QM_X (also in the cluster) which does not have REPLY_QUEUE,
From QM_X, I can post a message onto REPLY_QUEUE, no problem and it will appear on the queue on one of the Queue Managers. I use
MQCONNX (using QM_X )
MQOPEN (using REPLY_QUEUE)
MQ_PUT
MQ_CLOSE
But I need to insist that the message is posted to the queue on a specific Queue Manager, e.g. REPLY_QUEUE on QM_B
How can do this?
Trefor |
|
Back to top |
|
 |
Vitor |
Posted: Fri Mar 26, 2010 9:52 am Post subject: Re: Posting a message on a specific clustered queue. |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
TEdwards wrote: |
How can do this? |
Use ReplyTo_QMGR like you're using ReplyTo_Q (I'm assuming here that that's how you're selecting the queue manager) _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
TEdwards |
Posted: Mon Mar 29, 2010 12:31 am Post subject: |
|
|
Newbie
Joined: 11 May 2006 Posts: 4
|
This is what I'm doing.
1. A call to MQCONNX to connect to my local Queue Manager
2. A call to MQOPEN and I set the Object Descriptor to the remote queue name (REPLY_QUEUE).
3. A call to MQPUT after setting in the "Message Descriptor"
a) the ReplyToQ with the name of the Remote Queue (REPLY_QUEUE)
b) the ReplyToQMgr with the name of the Remote Queue Manager (MGR.B.POPLART1)
But still the message appears on the "wrong" queue manager. Below is the header of the message dumped from the "wrong" queue manager.
I'm using the name of the reply queue twice, once in the call to MQOPEN and once in the MQPUT. Is this my problem??
****Message descriptor****
StrucId : 'MD ' Version : 2
Report : 0 MsgType : 2
Expiry : -1 Feedback : 0
Encoding : 546 CodedCharSetId : 819
Format : 'MQSTR '
Priority : 0 Persistence : 1
MsgId : X'4D4D53475F303030323332353830313235374D3031202020'
MsgId : A'MMSG_0002325801257M01 '
CorrelId : X'4D4D53475F303030323332353830313235374D3031202020'
CorrelId : A'MMSG_0002325801257M01 '
BackoutCount : 0
ReplyToQ : 'REPLY_QUEUE '
ReplyToQMgr : 'MGR.B.POPLART1 '
** Identity Context
UserIdentifier : 'ctp_r '
AccountingToken :
X'0831303039323630370000000000000000000000000000000000000000000006'
ApplIdentityData : ' '
** Origin Context
PutApplType : '12'
PutApplName : 'TEST.EXE '
PutDate : '20100329' PutTime : '08125962'
ApplOriginData : ' '
GroupId : X'000000000000000000000000000000000000000000000000'
MsgSeqNumber : '1'
Offset : '0'
MsgFlags : '0'
OriginalLength : '-1'
**** Message **** |
|
Back to top |
|
 |
Mr Butcher |
Posted: Mon Mar 29, 2010 1:24 am Post subject: |
|
|
 Padawan
Joined: 23 May 2005 Posts: 1716
|
you need to set the qmgr name in the object descriptor if you want your message to go to a specific instance of the target queue REPLY_QUEUE . setting the replytoq and replytoqmgr here is useless in that case. thats no routing information for you, it is information supplied by the request-sending application so the reply-application can put its reply to that target.
but you try to put to that target directly _________________ Regards, Butcher |
|
Back to top |
|
 |
PeterPotkay |
Posted: Mon Mar 29, 2010 4:26 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
In other words, in Step 2 where you are setting the Destination Queue Name, also set the Destination Queue Manager Name. As long as the QM you are connected to has an MQ path to that Destination QM, it will accept and route the message for you. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
Vitor |
Posted: Mon Mar 29, 2010 5:50 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
PeterPotkay wrote: |
In other words, in Step 2 where you are setting the Destination Queue Name, also set the Destination Queue Manager Name. |
I thought I said that. Oh well...  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|