|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
MQ Java Client And Cluster Work Load Management |
« View previous topic :: View next topic » |
Author |
Message
|
skytorch |
Posted: Tue Jul 09, 2002 8:46 am Post subject: MQ Java Client And Cluster Work Load Management |
|
|
 Apprentice
Joined: 10 Jun 2002 Posts: 47 Location: New York City
|
I'm using MQ Java Client to send some messages to a queue Q1 defined in a cluster of QMs. I want to utilize work load management of MQ clustering. So I defined cluster queue Q1 in both CL-QM1 and CL-QM2 within the cluster with binding attribute of the queue set to MQOO_BIND_NOT_FIXED.
I have this scenario working:
java client -> CL-QM3 ---- CL-QM1 (Q1 get some messages)
\__ CL_QM2 (Q2 get some messages)
However I prefer to have this working instead of using CL-QM3 sitting in the middle.
java client -> ---- CL-QM1 (Q1 get some messages)
\__ CL_QM2 (Q2 get some messages)
How to achieve this ?
I've tried the following:
...
MQEnvironment.hostname=hostname;
MQEnvironment.port=port;
MQEnvironment.channel=channel;
qm=new MQQueueManager(""); //don't specify a cluster QM here, try to use work load.
int oopt=MQC.MQOO_OUTPUT|MQC.MQOO_BIND_NOT_FIXED;
MQQueue q=qm.accessQueue(qname, oopt);
MQMessage msg=new MQMessage();
msg.writeChars("test");
MQPutMessageOptions popt=new MQPutMessageOptions();
popt.options=MQC.MQPMO_NONE;
q.put(msg, popt);
...
But it always send messages to a queue in one specific QM.
Thanks in advance.
Sky |
|
Back to top |
|
 |
nimconsult |
Posted: Tue Jul 09, 2002 11:30 pm Post subject: |
|
|
 Master
Joined: 22 May 2002 Posts: 268 Location: NIMCONSULT - Belgium
|
I have also tried, even using the C language, but without success.
I tend to believe that it is not possible to have workload balancing in this case, but I would be very happy to learn that I am wrong.
According the MQ Series documentation ("Queue manager clusters" - csqzah03 - 4th edition November 2000) there is no workload balancing when a local instance of the queue exists:
Quote: |
The workload management algorithm selects the local quue manager as the destination whenever possible. If there is no instance of the queue on the local queue manager, the algorithm determines which destinations are suitable. <...> The algorithms uses a round-robin approach to finalize its choice between the suitable queue managers. |
There is also an illustration (figure 11 on page 42) with a very explicit legend. _________________ Nicolas Maréchal
Senior Architect - Partner
NIMCONSULT Software Architecture Services (Belgium)
http://www.nimconsult.be
Last edited by nimconsult on Wed Jul 10, 2002 2:52 am; edited 1 time in total |
|
Back to top |
|
 |
oz1ccg |
Posted: Wed Jul 10, 2002 12:40 am Post subject: |
|
|
 Yatiri
Joined: 10 Feb 2002 Posts: 628 Location: Denmark
|
Hi folks,
there are a way, using the ClusterWorkLoad Exit....
But why ... there are a huge overhead in moving msgs arround between qmgrs.
But if it's response times that is the real problem, write a CLWL exit, that select the queue based on your own priority scheme, you have to prevent it from looping.....
Anthony Poole, Ruud van Zundert, Alphacourt Ltd, Swindon, UK have written an CLWL exit, this can be used as a base for future development. The source code is available on:
http://www-3.ibm.com/software/ts/mqseries/txppacs/mc76.html
Just my $0.02  _________________ Regards, Jørgen
Home of BlockIP2, the last free MQ Security exit ver. 3.00
Cert. on WMQ, WBIMB, SWIFT. |
|
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
|
|
|
|