Author |
Message
|
KIT_INC |
Posted: Thu Oct 23, 2014 5:29 am Post subject: Unknown object name moving a QM into a cluster |
|
|
Knight
Joined: 25 Aug 2006 Posts: 589
|
I am running MQ V701. I have a Qmgr (QM1) communicating with outside vendor (QM_V) using sender receiver channel. QM_V has a remote Q definition
DEF QR(QR) RNAME(LQ1) RQMNAME(QM1)
Because of work load changes, I have to move QM1 to an existing cluster which has QM2 AND QM3. LQ1 is now a cluster Q defined on QM2 and QM3.
Locally, I have no problem using amqsput LQ1 QM1 to round robin the messages to LQ1 on QM2 and QM3.
We want the messages coming from QM_V load balanced between QM2 and QM3. But with the existing remote Q definition, the message from QM_V goes to the DLQ with Unknown Object name.
This is exactly the sample "Putting messages from Qmgr outside of the cluster" in the cluster manual. I think the manual provided 2 ways, one is have a blank Qmgr name in the remote Q definition and the other one is to use an alias for QM1 and ask QM_V to use the alias. But both way will require a change request to our external Vendor. There is some political and timing issue during with this Vendor which is outside of our team's control. I am looking for some advice if there is something that I can do without asking the vendor to make any changes.
A side question for my education is I can understand the reason for the unknown object is because the XMITQ header which contains LQ1 on QM1 explicitly says that the message has to go to QM1 and because LQ1 is not there anymore. I think the MCA on QM1 is also doing standard MQOPEN and MQPUT (or MQPUT1) to LQ1 when it receive the message from QM_V. So this will be similar to amqsput sample. Unless MCA is doing something different otherwise why is amqsput working and MCA PUT failed with unknown object name. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Oct 23, 2014 5:53 am Post subject: Re: Unknown object name moving a QM into a cluster |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
KIT_INC wrote: |
I am looking for some advice if there is something that I can do without asking the vendor to make any changes. |
Why not create a remote queue definition on QM1 named LQ1 that redirects the message into the cluster as described in the sample?
KIT_INC wrote: |
A side question for my education is I can understand the reason for the unknown object is because the XMITQ header which contains LQ1 on QM1 explicitly says that the message has to go to QM1 and because LQ1 is not there anymore. I think the MCA on QM1 is also doing standard MQOPEN and MQPUT (or MQPUT1) to LQ1 when it receive the message from QM_V. So this will be similar to amqsput sample. Unless MCA is doing something different otherwise why is amqsput working and MCA PUT failed with unknown object name. |
The amqsput will use the cluster workload algoythm to determine the target queue manager because no queue manager is specified in the MQOPEN. The MCA sees a message explicitly addressed to QM1 and hence doesn't rebalance. You'll see the same behaviour if you use amqsput and amqsecho to simulate request / reply in a cluster because even in a load balanced cluster the replies have to go back to the same queue manager that originated them. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
KIT_INC |
Posted: Thu Oct 23, 2014 5:59 am Post subject: |
|
|
Knight
Joined: 25 Aug 2006 Posts: 589
|
Thanks, We required that QM1 has to be part of the cluster and we try to avoid using sender receiver channels between Qmgrs within the same cluster. If there is no other way around it, we will use remote Q definition and SDR/RCVR channel between QM1 and one of the Qmgrs inside the cluster as the solution. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Oct 23, 2014 6:11 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
KIT_INC wrote: |
Thanks, We required that QM1 has to be part of the cluster and we try to avoid using sender receiver channels between Qmgrs within the same cluster. If there is no other way around it, we will use remote Q definition and SDR/RCVR channel between QM1 and one of the Qmgrs inside the cluster as the solution. |
My bad, should have been clearer - I meant a remote queue definition with a blank queue manager name as described in the sample. There's no requirement for additional SDR/RCVR channels within the cluster. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
KIT_INC |
Posted: Thu Oct 23, 2014 6:40 am Post subject: |
|
|
Knight
Joined: 25 Aug 2006 Posts: 589
|
NP. So you mean a remote Q definition on QM1 for LQ1 with a blank Qmgr name. But what do I put for XMITQ in the remote Q definition ? |
|
Back to top |
|
 |
Vitor |
Posted: Thu Oct 23, 2014 7:04 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
KIT_INC wrote: |
But what do I put for XMITQ in the remote Q definition ? |
Nothing. Let the cluster work it out. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Thu Oct 23, 2014 8:43 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
|
Back to top |
|
 |
Vitor |
Posted: Thu Oct 23, 2014 9:01 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
 _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
KIT_INC |
Posted: Thu Oct 23, 2014 9:12 am Post subject: |
|
|
Knight
Joined: 25 Aug 2006 Posts: 589
|
Thanks Vitor, using a remote queue definition as suggested works. However If I tried to use sample program to put message to remote Q defintion with a blank Qmgr name, it will fail with Qmge name error. What I need to do is creat a QM alias shared in the cluster with blanks in Q name and Qmgr name and use the QM alias as the Qmgr name in the remote Q definition. |
|
Back to top |
|
 |
|