Author |
Message
|
murdeep |
Posted: Wed Apr 11, 2007 9:20 am Post subject: Why does WMQ throw a 2082... |
|
|
Master
Joined: 03 Nov 2004 Posts: 211
|
Ok, i'm running wmq v6 at 6.0.2.0 on w2k.
I have three qmgrs. Two are brokers BKR1 and BKR2 one is a gateway GW01, they are all clustered.
Some application queue managers are going to connect via regular channels to the gateway. The application qmgrs will define a remote queue that points to a qalias on the gateway that targets the cluster queue defined on BKR1 and BKR2.
To prepare the test I define the qalias and cluster queues. I use product shipped amqsput to connect to GW01 and open QA.CLUSTERQ and I successfully resolve and put to the cluster queues on BKR1 and BKR2.
I then modify amqsput and change the code to explicitly specify the OD.ObjectQMgrName to be the queue manager I am connected to instead of being -blank-. Since this is what the receiving MCA at the gateway will be doing. Now when I execute the modified amqsput I get the 2082.
I was aware of this behavior since others have discussed it before on this and other forums. But I am wondering why WMQ has this behavior, what is the purpose? to me this seems like something that should be modified/fixed to be "if the 'OD.ObjectQMgrName' = 'qmgr I am connected to' then this is equivalent to 'OD.ObjectQMgrName' = '-blank-'. Any IBM developers out there care to comment? |
|
Back to top |
|
 |
tleichen |
Posted: Wed Apr 11, 2007 11:44 am Post subject: |
|
|
Yatiri
Joined: 11 Apr 2005 Posts: 663 Location: Center of the USA
|
A blank queue manager name typically is used for a client connection that is using the MQSERVER variable to point it to the right queue manager.
Also, it is not necessary to modify the code on AMQSPUT or AMQSPUTC, as there is already provision in the code to take in the queue manager name as a parameter.  _________________ IBM Certified MQSeries Specialist
IBM Certified MQSeries Developer |
|
Back to top |
|
 |
murdeep |
Posted: Wed Apr 11, 2007 12:13 pm Post subject: |
|
|
Master
Joined: 03 Nov 2004 Posts: 211
|
Thanks for the comment.
The queue manager specified as a parm on the amqsput sample is utilized on the mqconn not on the mqopen. My mod took the qmgr parameter and used it in the OD.ObjectQMgrName.
By doing this I am able to force the 2082. If I didn't do this then my amqsput would succeed but would not be emulating (I think) the behavior of the MCA.
What is dumb, imo, is that if I have a cluster q named QC on qmgr QM and I try to open it by specifying an OD where ObjectQMgrName = QM and ObjectName = QC it will fail with a 2085. But if I specify an OD where ObjectQMgrName = -blank- and ObjectName = QC it works.
This logic is why you need to create a qmgr alias at the gateway qmgr and specify that qmgr alias in any remote queue defintion that points to the cluster q at the gateway on qmgrs that route messages through the gateway to the cluster queues.
I'm trying to understand what the underlying rational for design is. |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Apr 11, 2007 1:10 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Quote: |
I'm trying to understand what the underlying rational for design is. |
Automatic routing and resolution... _________________ MQ & Broker admin |
|
Back to top |
|
 |
jsware |
Posted: Thu Apr 12, 2007 4:55 am Post subject: Re: Why does WMQ throw a 2082... |
|
|
 Chevalier
Joined: 17 May 2001 Posts: 455
|
murdeep wrote: |
To prepare the test I define the qalias and cluster queues. I use product shipped amqsput to connect to GW01 and open QA.CLUSTERQ and I successfully resolve and put to the cluster queues on BKR1 and BKR2.
I then modify amqsput and change the code to explicitly specify the OD.ObjectQMgrName to be the queue manager I am connected to instead of being -blank-. Since this is what the receiving MCA at the gateway will be doing. Now when I execute the modified amqsput I get the 2082. |
Is QA.CLUSTERQ your alias queue definition on GW01 or the clustered queue on both BRK1 and BRK2? What I think you need is a QREMOTE definition, called say ANY.CLUSTER where the remote q name and remote qmgr name are blank.
Your QREMOTE on the qmgr outside your cluster should specify the clustered q name and the ANY.CLUSTER as the remote qmgr name. Specify the xmitq as GW01 or whatever your xmitq standard is (e.g. GW01.XMITQ or FOR.GW01 for example).
See http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzah.doc/csqzah0729.htm for details and especially the link at the bottom about the alternative http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzah.doc/csqzah0732.htm#howput1 _________________ Regards
John
The pain of low quaility far outlasts the joy of low price. |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Apr 12, 2007 1:36 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
John gave you the right solution. Apply it.  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|