Author |
Message
|
kishi_25 |
Posted: Fri Mar 09, 2018 2:21 pm Post subject: Regarding QMGR Alias usage |
|
|
Centurion
Joined: 19 Jul 2011 Posts: 100
|
I'm defining the queues as below for routing messages to 2 different queues in cluster from non-cluster qmgr and messages are routing to destination queues on both cluster qmgrs as expected
QMGRA (Non-Cluster).
DEFINE QR (APP.TEST.OUTPUT)
RNAME(‘ APP.TEST.INPUT’)
RQMNANE(GTW01)
XMITQ(QGTW01.XQ)
QMGRB (ClusterA - GTW QMGR)
DEFINE QR(GTW01) RNAME(‘ ‘) RQMNAME(‘ ‘)XMITQ(‘ ‘)
Define Qalias(‘APP.TEST.INPUT’) +
TARGQ(‘QMGR.TEST.LOCAL)
QMGRC (ClusterA)
DEFINE QLOCAL(QMGR.TEST.LOCAL) CLUSTER(clusterA)
QMGRC (Cluster A)
DEFINE QLOCAL(QMGR.TEST.LOCAL) CLUSTER(clusterA)
may I know
i) what exactly qmgr alias is doing in the above function? and how the mapping occurs and what happens when the remote queue reaches Gateway qmgr?
how the message is routing to destination queues on both cluster queues.
went through infocenter and find it as bit confusing. |
|
Back to top |
|
 |
PaulClarke |
Posted: Fri Mar 09, 2018 2:33 pm Post subject: |
|
|
 Grand Master
Joined: 17 Nov 2005 Posts: 1002 Location: New Zealand
|
You can think of routing within MQ as based on the target Queue Manager name. MQ will try to deliver messages to a Queue Manager matching the Queue Manager name. However, if the Queue Manager name is blank then the MQ Cluster can 'match' the message with any of the available locations.
So, in your non-cluster Queue Manager you are routing the message based on QM (GTW01) but when it arrives at your gateway Queue Manager the Queue Manager alias converts that target to blank. When MQ tries to resolve the destination if will just look for targets that match the target queue name - eg.APP.TEST.INPUT. If you didn't change the target Queue Manager to blank then MQ would have to find an actual Queue Manager called GTW01. This would fail of course but even if you did have one there is no opportunity for cluster round-robin since the target is fixed.
Cheers,
Paul. _________________ Paul Clarke
MQGem Software
www.mqgem.com |
|
Back to top |
|
 |
kishi_25 |
Posted: Fri Mar 09, 2018 6:14 pm Post subject: |
|
|
Centurion
Joined: 19 Jul 2011 Posts: 100
|
Thanks. This give some clarity to me.
In this context, may I know how the QUEUE name and QUEUE MANAGER name will be getting populated in Transmit Queue At QMGR A and what happens when it reaches GTW QMGR. |
|
Back to top |
|
 |
PaulClarke |
Posted: Fri Mar 09, 2018 6:37 pm Post subject: |
|
|
 Grand Master
Joined: 17 Nov 2005 Posts: 1002 Location: New Zealand
|
At each Queue Manager a queue is opened using Queue Manager and Queue Name. Essentially what happens is:
- If the Queue Manager is the local Queue Manager or blank then the Queue Manager uses the Queue Name to do resolution
This might, for example, resolve to a remote queue, an alias queue definition, or perhaps one of a number of cluster queue definitions.
This resolution could change the values of Queue Manager, Queue and Transmission Queue and so the process of resolution is repeated
- If the Queue Manager is not local then it uses the Queue Manager Name to do resolution.
This could resolve using a Queue Manager alias - again meaning that the values of Queue Manager, Queue and Transmission Queue and so the process of resolution is repeated
Of course there are subtle nuances but that's the general idea. The manuals and red books contain more detailed explanations of Queue resolution. It is fairly straight-forward if you think about it logically.
Cheers,
Paul. _________________ Paul Clarke
MQGem Software
www.mqgem.com |
|
Back to top |
|
 |
bruce2359 |
Posted: Sat Mar 10, 2018 6:48 am Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
|
Back to top |
|
 |
kishi_25 |
Posted: Sun Mar 11, 2018 5:01 pm Post subject: |
|
|
Centurion
Joined: 19 Jul 2011 Posts: 100
|
Gives some clarity now. Thanks for the explanation |
|
Back to top |
|
 |
|