Author |
Message
|
Adreno |
Posted: Tue Aug 18, 2009 12:30 am Post subject: mqrc 2082 when writing to alias queue on cluster GW |
|
|
Acolyte
Joined: 05 Jul 2007 Posts: 71
|
Hi guys,
before I will send my PMR over to IBM may someone of you ever had that strange Problem before. So . . we are actually running a number of queue manager clusters with lots of queue managers.
At intercommunication point between these clusters dedicated queue managers are used as gateways with seperate CLUSSDR and CLUSRCVR channel for each cluster. Requests from within CLUSTER 1 are routed to CLUSTER 2 over alias queues published in CLUSTER1 and poiting to cluster local queues in CLUSTER 2. For reply queue manager aliases are defined for queue managers in cluster1 on GW and published to cluster2.
For closer details here are the specifications:
WBMGW4 = Gateway Queue Manager in Cluster 1 and Cluster 2(also Full Repos for C2); Cluster Queues in both Clusters can be resolved and opened.
AQ on Gateway looks like this:
dis q(S_ADS.DBASIS.REQUEST)
AMQ8409: Display Queue details.
QUEUE(S_ADS.DBASIS.REQUEST) TYPE(QALIAS)
TARGQ(S_ADS_ADS.DBASIS.REQUEST) CLUSNL( )
CLUSTER(CLUSTER1) DEFBIND(NOTFIXED)
DEFPSIST(NO) GET(ENABLED)
PUT(ENABLED)
Target Queues in Cluster 2 look like this:
dis qc(S_ADS_ADS.DBASIS.REQUEST)
AMQ8409: Display Queue details.
QUEUE(S_ADS_ADS.DBASIS.REQUEST) TYPE(QCLUSTER)
CLUSTER(CLUSTER2)
CLUSQMGR(QM_ADS1) CLUSQT(QLOCAL)
CLWLRANK(0) DEFBIND(NOTFIXED)
DEFPRTY(0) DEFPSIST(NO)
DESCR(WebSphere MQ Default Local Queue)
PUT(ENABLED) QMID(QM_ADS1_2009-07-28_12.07.4
There are 3 instances of that queue within cluster 2 all known by the gateway.
When I actually try to open the alias queue from a queue manager in cluster1 with amqsput e.g. there is no error. I can also write to alias queue destination queue over this mechanism using command line tool.
But then Error 2082 appears when my message flow tries to write to the alias queue and messages are routed to DEAD.LETTER.QUEUE on the gateway. 2082 means that the the targq for the alias queue is unknown. When I alter qa to point to a local queue on the gateway all workes fine.
Any hints? _________________ There are two kinds of people in this world: people who s***, and Chuck Norris... |
|
Back to top |
|
 |
vol |
Posted: Tue Aug 18, 2009 1:14 am Post subject: |
|
|
Acolyte
Joined: 01 Feb 2009 Posts: 69
|
See Clusters manual topic
Quote: |
Putting from a queue manager outside the cluster - alternative
|
|
|
Back to top |
|
 |
queuemanager |
Posted: Tue Aug 18, 2009 1:57 am Post subject: |
|
|
Apprentice
Joined: 28 Nov 2006 Posts: 43 Location: Bangalore
|
Your alias queue on gateway queuemanager should be part of both the clusteres i.e CLUSTER1 & CLUSTER2.
Create a namelist with both clusters in it and alter the queue alias CLUSNL attribute with the namelist. |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Aug 18, 2009 2:46 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
queuemanager wrote: |
Your alias queue on gateway queuemanager should be part of both the clusteres i.e CLUSTER1 & CLUSTER2.
Create a namelist with both clusters in it and alter the queue alias CLUSNL attribute with the namelist. |
Remember as well that it is not good practice to give the Alias queue the same name as the target queue. I believe the main problem here comes from that practice.
If you really want to resolve to different clusters with the only common qmgr being the gateway, you will need to define cluster aliases on the gateway... and possibly as well in the cluster. This will then work as routing...
ex:
cluster alias in cluster 1 is cluster 1 (qc not on gw)
cluster alias in cluster 2 is cluster 2 (qc not on gw)
cluster alias on gw is cluster_1_in_cl2 rqmname = cluster 1
cluster alias on gw is cluster_2_in_cl1 rqmname = cluster 2
The gateway is then the only qmgr that knows how to route from one cluster to the other. If you are doing request/reply across the clusters you will need to have qmgr aliases defined as well on the gateway.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
exerk |
Posted: Tue Aug 18, 2009 3:58 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
queuemanager wrote: |
Your alias queue on gateway queuemanager should be part of both the clusteres i.e CLUSTER1 & CLUSTER2... |
Justify that please, considering that from the looks of Adreno's topology the idea is to maintain separation of the clusters.
fjb_saper wrote: |
Remember as well that it is not good practice to give the Alias queue the same name as the target queue. I believe the main problem here comes from that practice. |
I've done this in the past, and had no issues with it, but always happy to learn from others experiences
Adreno,
Is aech QALIAS set to BIND(NOTFIXED)? _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
Ratan |
Posted: Thu Aug 27, 2009 10:43 pm Post subject: |
|
|
 Grand Master
Joined: 18 Jul 2002 Posts: 1245
|
Since you mentioned messageflow, I am assuming you are doing this from message broker.
On the MQOutput Node did you specify a QM name. If so remove that. _________________ -Ratan |
|
Back to top |
|
 |
|