|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Simple cluster setup , but not working. |
« View previous topic :: View next topic » |
Author |
Message
|
iceage |
Posted: Thu Jun 28, 2012 11:18 am Post subject: Simple cluster setup , but not working. |
|
|
 Acolyte
Joined: 12 Apr 2006 Posts: 68
|
I have simple MQ setup but it is not working , tried out various combinations with no avail. Its beats me that either i am misreading queue name resolution or doing something basically wrong. Please advise.
Code: |
QM1 , QM2 are connected using SDR , RCVR.
QM2 & QM3 , QM4 are connected via a cluster - ONE.
on QM1 , DEF QR(QR1) RNAME(QA1) RQMNAME(QM2) XMITQ(QM2).
on QM2 , DEF QA(QA1) TARGQ(CLUSTER.QUEUE)
on QM3,QM4 , DEF QA(CLUSTER.QUEUE) TARGQ(LOCAQ) CLUSTER(ONE) |
Now put from QM2 on QA1 works fine. (Validates cluster setup and QA1 defintion).
But put from QM1 , fails on QM2 with 2082. Unknown alias base queue. as if its trying to locally resolve for the CLUSTER.QUEUE.
Tried by altering QM1 defns to , DEF QR(QR1) RNAME(CLUSTER.QUEUE) RQMNAME(QM2) XMITQ(QM2).
Now getting 2085 on QM2.
Few questions
1) What i am trying to acheive is even feasible ? After debugging this thing for 4 hours , i have to doubt myself if its the correct thing to do .
2) Next , do you see any issues with my setup.
Thanks. |
|
Back to top |
|
 |
iceage |
Posted: Thu Jun 28, 2012 12:25 pm Post subject: |
|
|
 Acolyte
Joined: 12 Apr 2006 Posts: 68
|
After a coffee break , i am able to get ti work ..
To make it work
Code: |
QM1 , QM2 are connected using SDR , RCVR.
QM2 & QM3 , QM4 are connected via a cluster - ONE.
on QM1 , DEF QR(QR1) RNAME(QA1) RQMNAME(QMX) XMITQ(QM2).
on QM3,QM4 , DEF QR(QMX) CLUSTER(ONE)
on QM3,QM4 , DEF QA(QA1) TARGQ(LOCAL.QUEUE). |
I am sure this is one of the ways to get it work and now i my inference of this situation is .. Queue name resolution looks outside of queue manager if and only
1) if queue its resolving to is a local remote queue
2) if qmgr object that is not local.
Is that a fair assessment ? |
|
Back to top |
|
 |
bruce2359 |
Posted: Thu Jun 28, 2012 1:55 pm Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
Among other things, Cluster sender and cluster receiver channels are required.
Search here and IBM InfoCenter for how to set up a cluster. _________________ 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 |
|
 |
bruce2359 |
Posted: Thu Jun 28, 2012 3:02 pm Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
iceage wrote: |
Queue name resolution looks outside of queue manager if and only
1) if queue its resolving to is a local remote queue
2) if qmgr object that is not local.
Is that a fair assessment ? |
No.
Refer to the WMQ Intercommunications manual (or equivalent InfoCenter) for discussion of name resolution.
Refer to the WMQ Queue Manager Clusters manual (or equivalent InfoCenter) for the bible on clusters. _________________ 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 |
|
 |
mqjeff |
Posted: Fri Jun 29, 2012 1:54 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
In the non-working case, your first QREMOTE sets an RQMNAME. This sticks with the message until it is modified somewhere else by another QREMOTE.
You fix this in your working case, but I don't think you understand why or what you're really doing.
In your working case, you have
Code: |
on QM3,QM4 , DEF QR(QMX) CLUSTER(ONE) |
This coincidentally has RQMNAME(''), which blanks out the queue manager name that is used. This is what makes it work.
It also shares the QREMOTE in the cluster named "ONE". You don't need to share this in the cluster named ONE...
Name Resolution is handled entirely based on one of two things. {Queue, Queue Manager} or {Topic}. When an app does an MQPUT, it specifies an Object Queue and Object Queue Manager (or a topic...). These values are then resolved at the connected queue manager, which lead to the message either being put to a local queue or an xmitq. Once the message is on an xmitq, it carries the resolved versions of the {Queue, Queue Manager}. These are then re-resolved when the message is received at the other end of the channel that is processing the xmitq. |
|
Back to top |
|
 |
iceage |
Posted: Mon Jul 02, 2012 10:35 am Post subject: |
|
|
 Acolyte
Joined: 12 Apr 2006 Posts: 68
|
Quote: |
You fix this in your working case, but I don't think you understand why or what you're really doing.
In your working case, you have Code:
on QM3,QM4 , DEF QR(QMX) CLUSTER(ONE)
This coincidentally has RQMNAME(''), which blanks out the queue manager name that is used. This is what makes it work. |
Yes i do intentionally defined that defintion to make it a qmgr alias and understand implications of it.
Quote: |
It also shares the QREMOTE in the cluster named "ONE". You don't need to share this in the cluster named ONE... |
Reason for making it as part of cluster , so i wouldn't require defintion on QM2/ that acts as a gateway to put outside of cluster.
Regarding name resolution , yes understood. This statement from yours is what i was missing. I thought we can resolove outside of qmgr by defining a qmgr alias on QM2 like (DEF QR(QM2) RQMNAME(' '))
Quote: |
In the non-working case, your first QREMOTE sets an RQMNAME. This sticks with the message until it is modified somewhere else by another QREMOTE. |
Thanks for your help |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|