Author |
Message
|
kishi_25 |
Posted: Wed Aug 17, 2011 7:05 am Post subject: Queuemanager alias setup for resolving - Need experts help |
|
|
Centurion
Joined: 19 Jul 2011 Posts: 100
|
hi,
I'm having QM1 and QM2, I have defined sender/receiver channel pairs between QM1and QM2.
I have applications, which can put messages to 3 different queues Q1, Q2 and Q3 on QM2. For this scenario, I was told by defining the QMalias as below will take care of routing requests to different queues on QM2.
DEFINE QREMOTE(SAMPLE) +
DESCR('ALIAS FOR REMOTE QM) +
RNAME(' ') +
RQMNAME('QM2') +
XMITQ('ABC') +
Now, my questions is if application A on QM1 puts a message to Q3 on QM2, using QREMOTE and channeals, when the message reaches the destination QM, how does it now, it has to go for Q3 as We are not specifiying Q3 anywhere?
Will this concepts works really? |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Aug 17, 2011 7:08 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
You're telling it to put messages to a specific XMITQ.
That XMITQ can only be read by one channel, which goes to QM3. |
|
Back to top |
|
 |
kishi_25 |
Posted: Wed Aug 17, 2011 7:11 am Post subject: |
|
|
Centurion
Joined: 19 Jul 2011 Posts: 100
|
Agree..till it goes to QM3, but it goes to QM3 how does QM3 identifies whether it has to send Q1 or Q2 or Q3 ? |
|
Back to top |
|
 |
kishi_25 |
Posted: Wed Aug 17, 2011 7:19 am Post subject: |
|
|
Centurion
Joined: 19 Jul 2011 Posts: 100
|
My question is if application A on QM1 want to send message to Queue Q3 on QM2, when it uses QMANAGER ALIAS (instead of QREMOTE), no where we are specifiying about Q3..then how does destination QM QM2 know that, the message is intended for Q3? Even transmission Queue also doesn't know ..this.. |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Aug 17, 2011 7:40 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Because the app can send to a destination of (Q2,SAMPLE).
This will put the message on the 'ABC' xmitq, send it to QM3, which will then look for Q2.
But be aware that the application can just as easily send to a destination of (SYSTEM.ADMIN.COMMAND.QUEUE,SAMPLE) with this setup. And unless the RCVR channel on the other end has an MCAUSER that prevents it, there's nothing you can do to stop it. |
|
Back to top |
|
 |
sunny_30 |
Posted: Wed Aug 17, 2011 7:44 am Post subject: |
|
|
 Master
Joined: 03 Oct 2005 Posts: 258
|
Queue/ QueueManager resolution in the following order:
To ensure the right transmission queue is found the administrator has the following:
•A transmission queue with the same name as the QM will be automatically chosen
•A remote queue can explicitly define a transmission queue for a queue or for a QM
•Clustered destinations will be discovered automatically
•If all else fails a default transmission queue can be used. |
|
Back to top |
|
 |
kishi_25 |
Posted: Wed Aug 17, 2011 7:50 am Post subject: |
|
|
Centurion
Joined: 19 Jul 2011 Posts: 100
|
Can you please more detail? how does this setup work?
you mean Q2 is Queue and SAMPLE is destination Queue manager?
if this is true, in this setup is the application has to issue two put calls?
1. for Transmission queue and 2. for Queue manager alias?
Also, how can I prevent to wrong destination at RCVR end using MCAUSER? |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Aug 17, 2011 8:00 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
No.
An Application always always always issues an MQPUT that specifies both an Object Queue and an Object Queue Manager value. Sometimes one or the other of those values are 'empty'... particularly the Object queue Manager, but they are still always specified.
If the application puts "SAMPLE" into the Object Queue Manager value, then it will resolve and put the message on the XMITQ mentioned in the definition of SAMPLE. If it likewise puts 'Q2' into the Object Queue, then that value will be carried forward in the RQNAME and looked up on the receiving qmgr.
Set the value of MCAUSER to a known user on the receiving side. issue the appropriate setmqaut commands to prevent that user from accessing any queues that are not supposed to be accessed. |
|
Back to top |
|
 |
kishi_25 |
Posted: Wed Aug 17, 2011 8:13 am Post subject: |
|
|
Centurion
Joined: 19 Jul 2011 Posts: 100
|
thanks jeff. is my below understanding is correct?
when the application puts
Resolved Qname(Q3) and Resolved QMNAme(SAMPLE AS Queeu manager alias),
i) The resolved Qname Q3 will be passed to Transmission header in Transmsission Queue ABC,
ii) and SAMPLE Queue manager alias will be resovled to target QM QM2 from following definition and also will be added in Transmission header of ABC xmit queue
With this transmission will have both target queue and QM.
DEFINE QREMOTE(SAMPLE) +
DESCR('ALIAS FOR REMOTE QM) +
RNAME(' ') +
RQMNAME('QM2') +
XMITQ('ABC') +
Please confirm the above process is correct. |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Aug 17, 2011 8:16 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Does that match what the documentation says? |
|
Back to top |
|
 |
bruce2359 |
Posted: Wed Aug 17, 2011 8:39 am Post subject: Re: Queuemanager alias setup for resolving - Need experts h |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
kishi_25 wrote: |
I was told by defining the QMalias as below will take care of routing requests to different queues on QM2.
DEFINE QREMOTE(SAMPLE) +
DESCR('ALIAS FOR REMOTE QM) +
RNAME(' ') +
RQMNAME('QM2') +
XMITQ('ABC') +
|
You were misled. A queue-manager-alias allows for the queue-manager name to be changed (modified, resolved).
The folks at the WMQ factory, faced with the issues of how to redirect a message to another qmgr, or how to override the RQMNAME field in the XQH, chose to use a QR definition, BUT without the RNAME field. Confusion has reigned ever since.
A queue-alias allows for a queue name to be changed (altered, resolved). A queue-alias looks like this:
DEF QA(QUEUE.NAME) +
TARGQ(ANOTHER.NAME).
There are discussions here, and doc in Intercommunications manual that explains the purposes of a qmgr-alias. _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
 |
kishi_25 |
Posted: Wed Aug 17, 2011 11:50 am Post subject: |
|
|
Centurion
Joined: 19 Jul 2011 Posts: 100
|
hi
I think, you read my initial post only. But after discussing with Jeff and others in this forum, I'm thinking of below approach will work.
are you seeing any issues in this?
when the application puts
Resolved Qname(Q3) and Resolved QMNAme(SAMPLE AS Queeu manager alias),
i) The resolved Qname Q3 will be passed to Transmission header in Transmsission Queue ABC,
ii) and SAMPLE Queue manager alias will be resovled to target QM QM2 from following definition and also will be added in Transmission header of ABC xmit queue
With this transmission will have both target queue and QM.
DEFINE QREMOTE(SAMPLE) +
DESCR('ALIAS FOR REMOTE QM) +
RNAME(' ') +
RQMNAME('QM2') +
XMITQ('ABC') +
Ofcourse I agree just by using above definition may not work for routing messages to different queues..I should specifiy the queue name in application call.. |
|
Back to top |
|
 |
|