Author |
Message
|
sunnybab |
Posted: Sat Jan 14, 2006 12:34 pm Post subject: MQ Client Communication to MQ Cluster Setup |
|
|
Novice
Joined: 12 Jan 2006 Posts: 21
|
Folks,
I have an MQ Cluster setup on Solaris with two machine running MQ Server ( QM1 , QM2) each having same clustered queue defined with sndr and rcve channels and there is thrid machine part of the Cluster which puts the message in to the Clustered queue. and is processed by the App Server All this setup is working Fine.
Now I have 4th Solaris Machine which is just running the MQ Client and Requirement is
1) To have MQ Client put Messages on the above CLustered Queue and secondly
2) MQ Client be able to pick messages from CLustered Queue
Is that Possible ? If So what configuration would need to be done ..
Thanks in advance
Sunny |
|
Back to top |
|
 |
wschutz |
Posted: Sat Jan 14, 2006 1:15 pm Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
The client will connect to QM1 or QM2. Assuming CLQ is a local queue defined on QM1 and QM2 and in a cluster in both, then when the client PUTS a message, you can have it round robin to both qmgrs (easily done in v6), however, it can only get from the local queue on the qmgr its connected to, so for example, if its connected to QM1, it can get from CLQ on MQ1 but not QM2. _________________ -wayne |
|
Back to top |
|
 |
sunnybab |
Posted: Sat Jan 14, 2006 1:56 pm Post subject: |
|
|
Novice
Joined: 12 Jan 2006 Posts: 21
|
Yes the CLQ is local on QM1 and QM2 and is in cluster in both. I have the CLUSRCVR (TO.QM1.RCVR) and CLUSSDR ( TO.QM1.SDR) channels on both the Cluster Queue Managers( QM1 and QM2 )
No on the MQ CLient I have the MQSERVER variable :
export MQSERVER=TO.QM1.RCVR/TCP/<hostname>
when I put a message
$ amqsputc CLQ_Name Qmgr_Name
Sample AMQSPUT0 start
MQCONN ended with reason code 2059
meaning MQRC_Q_MGR_NOT_AVAILABLE
Looks like its not able to reach Qmanager .. There is no TCP connection problem between two machine , they are in local network ,.. seems Channel related ..
IS there any documentaion onsetup of MQ Client connectivity to Cluster queues ? |
|
Back to top |
|
 |
mvic |
Posted: Sat Jan 14, 2006 2:46 pm Post subject: |
|
|
 Jedi
Joined: 09 Mar 2004 Posts: 2080
|
sunnybab wrote: |
IS there any documentaion onsetup of MQ Client connectivity to Cluster queues ? |
Used Google. Didn't find anything in the manuals, but found this : http://www.ibm.com/developerworks/websphere/library/techarticles/0302_taylor/taylor.html See the first question on the list. Don't know if this helps.
Regarding the 2059 error, do you have a listener on port 1414 for the target queue manager? What happens if you try a channel name of SYSTEM.DEF.SVRCONN ? - it's incorrect to specify a RCVR channel name. |
|
Back to top |
|
 |
sunnybab |
Posted: Sat Jan 14, 2006 3:59 pm Post subject: |
|
|
Novice
Joined: 12 Jan 2006 Posts: 21
|
okay , so it works with SYSTEM.DEF.SVRCONN channel name
export MQSERVER=SYSTEM.DEF.SVRCONN/TCP/<hostname>
$ amqsputc CLQ_Name Qmgr_Name
Now the problem is I am able to put the message to the server Cluster queue which is defined in MQSERVER variable and the one passed on as parameter to the amqsputc as above .BUT I want to be able to put the message to Cluster Queue from Client so its round robin between the 2 MQ Servers ..Any Ideas ? Thanks for all help .. |
|
Back to top |
|
 |
wschutz |
Posted: Sat Jan 14, 2006 6:00 pm Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
What version of MQ do you have on the servers? V5.3 or v6?
If its V6, then you can set your queue (CLQ_Name) to have the attribute CLWLUSEQ(ANY), which will round robin the messages between the queue manager the client connected to and the others in the cluster. _________________ -wayne |
|
Back to top |
|
 |
sunnybab |
Posted: Sat Jan 14, 2006 7:22 pm Post subject: |
|
|
Novice
Joined: 12 Jan 2006 Posts: 21
|
I m using 5.3 .. I can look in to upgrading to 6 if that will solve this problem  |
|
Back to top |
|
 |
PeterPotkay |
Posted: Sat Jan 14, 2006 7:47 pm Post subject: Re: MQ Client Communication to MQ Cluster Setup |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
sunnybab wrote: |
Folks,
I have an MQ Cluster setup on Solaris with two machine running MQ Server ( QM1 , QM2) each having same clustered queue defined with sndr and rcve channels and there is thrid machine part of the Cluster which puts the message in to the Clustered queue. and is processed by the App Server All this setup is working Fine.
Now I have 4th Solaris Machine which is just running the MQ Client and Requirement is
1) To have MQ Client put Messages on the above CLustered Queue and secondly
2) MQ Client be able to pick messages from CLustered Queue
Is that Possible ? If So what configuration would need to be done ..
Thanks in advance
Sunny |
The MQClient on the "4th machine" that does the puts makes an MQCLient connection via a SVRCONN channel to the "third machine" The third machine will round robin the messages to QM1 and QM2.
When its time for MQGETs, the MQClient makes a connection to either QM1 or QM2, and does the MQGETs from the q while connected directly to the QM that hosts the queue you want to MQGET from. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
sunnybab |
Posted: Sat Jan 14, 2006 8:17 pm Post subject: |
|
|
Novice
Joined: 12 Jan 2006 Posts: 21
|
Is there a way 4th Machine having just the MQ CLient can put the Messages durectly to QM1 and QM2 CLuster in round robin ?
I can put the messages to CLuster Queue currently but only one at time, that is the one to Server I configure in the MQServer Variable |
|
Back to top |
|
 |
wschutz |
Posted: Sun Jan 15, 2006 4:46 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
sunnybab wrote: |
Is there a way 4th Machine having just the MQ CLient can put the Messages durectly to QM1 and QM2 CLuster in round robin ?
I can put the messages to CLuster Queue currently but only one at time, that is the one to Server I configure in the MQServer Variable |
I believe I've answered your question. if you must use V5.3, then either do what Peter suggests or code a cluster workload exit. _________________ -wayne |
|
Back to top |
|
 |
PeterPotkay |
Posted: Sun Jan 15, 2006 10:27 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
sunnybab wrote: |
Is there a way 4th Machine having just the MQ CLient can put the Messages durectly to QM1 and QM2 CLuster in round robin ?
I can put the messages to CLuster Queue currently but only one at time, that is the one to Server I configure in the MQServer Variable |
If stuck at 5.3, you can also skip relying on using MQSERVER, and use MQCONNX or MQ Channel Tables that will allow the client app on Machine 4 to make 2 concurrent connections to QM1 and QM2, and then in your code, you alternate the puts between the 2. But really the better choice is to connect to QM3 and let it do the round robining. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
sunnybab |
Posted: Tue Jan 17, 2006 3:46 pm Post subject: |
|
|
Novice
Joined: 12 Jan 2006 Posts: 21
|
wschutz wrote: |
sunnybab wrote: |
Is there a way 4th Machine having just the MQ CLient can put the Messages durectly to QM1 and QM2 CLuster in round robin ?
I can put the messages to CLuster Queue currently but only one at time, that is the one to Server I configure in the MQServer Variable |
I believe I've answered your question. if you must use V5.3, then either do what Peter suggests or code a cluster workload exit. |
Thanks Guys .. IT WORKS . I upgraded to 6.0 and use CLWLUSEQ attribute and I am able to put directly to CLQ
Only issue I have which is New is that on Machine 3 (QM3)from which I put messages on CLQ's on QM1 & QM2 is having issues ..
IN the display clusqmgr(*) I see
CLUSQMGR(SYSTEM.TEMPQMGR.hostname)
and channel status syays retrying
which means its not able to connect to QM1 or QM2 which hosts the Full repository and the Cluster queues .. TCP link works between them ..I dont know why is it not able to see the QMGR's QM1 and QM2 wheras MQ client on 4th Machine is able tp put messages to QM1 and Qm2..
Any ideas on fixing this CLUSQMGR(SYSTEM.TEMPQMGR ..)
I tried deleting the QMGR QM3 and rejoin the Cluster but still no luck . |
|
Back to top |
|
 |
PeterPotkay |
Posted: Tue Jan 17, 2006 4:29 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
sunnybab wrote: |
Any ideas on fixing this CLUSQMGR(SYSTEM.TEMPQMGR ..) |
Check the back of the CLuster Manual. It lists common problems and solutions. Your channels are not talking, either because of a network problem, your listener is not up, or the channels are not defined properly.
sunnybab wrote: |
I tried deleting the QMGR QM3 and rejoin the Cluster but still no luck. |
Don't do that. You only added to the problems. QMs in a cluster are identified by a QM_ID. If you create a QM after deleting it, even with the same name, the QM_ID will be different. Read up on the RESET command in the CLuster Manual.
The Cluster Manual is not that big. You should read it cover to cover. Good stuff! _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
sunnybab |
Posted: Fri Jan 20, 2006 11:14 am Post subject: |
|
|
Novice
Joined: 12 Jan 2006 Posts: 21
|
Thanks much PeterPotkay and wschutz. It works now , I had wrong Cluster sender defination .. |
|
Back to top |
|
 |
|