Author |
Message
|
RNStanich |
Posted: Wed Apr 24, 2002 12:51 pm Post subject: |
|
|
Acolyte
Joined: 23 Apr 2002 Posts: 64
|
Hi all, we have a simple setup to play around with clustering. MQ V5.2.1 on W2K, CSD03. There is a cluster of 3 servers, each running one qmgr. QM1 has an alias definition which resolves to a clustered queue. QM2 and QM3 each have a local definition of the clustered queue, which the queue alias resolves to. If we put messages on the QA, we expect to see the WLM round robin the messages to QM2 and QM3, however all messages go to QM2. The QA is opened as Notfixed.
All the reading I've done, including threads on this site, imply this should work. Any thoughts would be appreciated.
_________________ Regards, Bob |
|
Back to top |
|
 |
muralihegde |
Posted: Thu May 02, 2002 4:09 am Post subject: |
|
|
Centurion
Joined: 30 Apr 2002 Posts: 108
|
Hi,
It depends on how you are putting the messages to QA.
If the default option of the cluster queues is left as bind on open
and the application you are using to put the messages(Say AppPut) also uses default option bind as q def"
In this case, if your application opens QA once and tries to put messages in a loop, then all the messages will go to only one cluster queue which may be on QM2.
But ideally if you re-run your application to put the messages again, then it should go to the cluster queue on QM3.
Can you please give more details like, how is your queue alias definiation on QM1, and details about the applicaiton you are putting etc??
|
|
Back to top |
|
 |
NickB |
Posted: Thu May 02, 2002 6:02 am Post subject: |
|
|
Centurion
Joined: 20 May 2001 Posts: 107 Location: Zurich Financial Services
|
I think there is a popular misconception that the round-robin algorithm within the cluster workload exit shares out the work equally among all participating queue managers. This is just NOT true! Messages are directed to a qmgr for as long as it is capable of processing them; it is only at this point that an alternative qmgr is sought. So if your application sends 4 msgs to the cluster queue then they will all be processed by qmgrA if it is able to do so. Even if you stop your application and restart it, it will still continue to send them to qmgrA provided qmgrA is capable of servicing the requests. |
|
Back to top |
|
 |
RNStanich |
Posted: Fri May 03, 2002 9:17 am Post subject: |
|
|
Acolyte
Joined: 23 Apr 2002 Posts: 64
|
|
Back to top |
|
 |
mrlinux |
Posted: Fri May 03, 2002 9:24 am Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
Well I beg to differ on the round robin issue, I have tested with the AMQSPUT test programs and for each time I run it the messages would alternate between
the 2 Clustered queues I created.
_________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
RNStanich |
Posted: Fri May 03, 2002 9:29 am Post subject: |
|
|
Acolyte
Joined: 23 Apr 2002 Posts: 64
|
Thank you for your replies...I double checked the definitions of the alias queue and the two clustered local queues. All are set as "not fixed" for the bind option. I am using the amqsputc utility to throw messages onto to the queue, so I do not know what options it may be using, although I suspect it would use the queue's default. That should be okay.
Nick, what you say makes sense about QM1 sending messages to only one QM if it is able to process the messages, however, how does QM1 know if the target qmgr can process them? As a test, I get inhibited the cluster queue on the qmgr which receives all the messages. QM1 still sent messages to him, ignoring the other qmgr. It wasn't until I put inhibited the queue did the other qmgr get messages. |
|
Back to top |
|
 |
DRoberts |
Posted: Fri May 03, 2002 11:51 am Post subject: |
|
|
 Novice
Joined: 30 Apr 2002 Posts: 14
|
Hi Bob,
Can you include your definition for the alias queue?
_________________ Deborah Roberts
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
RNStanich |
Posted: Mon May 06, 2002 5:31 am Post subject: |
|
|
Acolyte
Joined: 23 Apr 2002 Posts: 64
|
Definitions as requested:
QAlisa on QM1:
DEFINE QALIAS ('I3_RENEW_POLICY_REQ') +
DEFPRTY(0) +
DEFPSIST(YES) +
DEFBIND(NOTFIXED) +
TARGQ('I3_RENEW_POLICY_REQ_QL') +
REPLACE
Target Q on QM2 and QM3:
DEFINE QLOCAL ('I3_RENEW_POLICY_REQ_QL') +
DEFPRTY(0) +
DEFPSIST(YES) +
MAXDEPTH(5000) +
MSGDLVSQ(FIFO) +
BOTHRESH(1) +
HARDENBO +
BOQNAME('I3_RENEW_POLICY_REQ_SUSP') +
CLUSTER('APAI') +
DEFBIND(NOTFIXED) +
REPLACE
Thank you for your time...
|
|
Back to top |
|
 |
|