ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » Clustering » Round Robin in Cluster

Post new topic  Reply to topic
 Round Robin in Cluster « View previous topic :: View next topic » 
Author Message
andrewfemin
PostPosted: Thu May 03, 2018 1:05 am    Post subject: Round Robin in Cluster Reply with quote

Acolyte

Joined: 26 Aug 2017
Posts: 54

Hi,

We have a full repository queue manager which acts as the gateway queue manager. It does not have any local queues. Two partial repository queue manager with identical set of clustered queues connect to the gateway queue manager. The idea is that messages are always sent to the gateway queue manager from outside applications or queue managers and when two messages are sent to a particular queue in the gateway server, the first one gets routed to the queue in one partial repository while the second one goes to the queue in other partial repository, hence achieving load balancing.

While this round robin routing is working perfectly when I put messages to the gateway queue manager using amqsput, it is not working when I put messages using RFHUtil. All the messages put using RFHUtil go to the same queue manager instead of being round robined. Is this expected behaviour? Or is there any QM parameter that needs to be altered for the messages put in using server connection channels also to be round robined?
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu May 03, 2018 2:30 am    Post subject: Re: Round Robin in Cluster Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

andrewfemin wrote:
Hi,

We have a full repository queue manager which acts as the gateway queue manager. It does not have any local queues. Two partial repository queue manager with identical set of clustered queues connect to the gateway queue manager. The idea is that messages are always sent to the gateway queue manager from outside applications or queue managers and when two messages are sent to a particular queue in the gateway server, the first one gets routed to the queue in one partial repository while the second one goes to the queue in other partial repository, hence achieving load balancing.

While this round robin routing is working perfectly when I put messages to the gateway queue manager using amqsput, it is not working when I put messages using RFHUtil. All the messages put using RFHUtil go to the same queue manager instead of being round robined. Is this expected behaviour? Or is there any QM parameter that needs to be altered for the messages put in using server connection channels also to be round robined?

You need to use one of the switches on the RFHUtil panels (don't remember which one you'll have to go hunting). You need to make sure of your open options for the queue: not fixed is the value you're looking for...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
bruce2359
PostPosted: Thu May 03, 2018 4:53 am    Post subject: Re: Round Robin in Cluster Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9394
Location: US: west coast, almost. Otherwise, enroute.

fjb_saper wrote:
You need to make sure of your open options for the queue: not fixed is the value you're looking for...

These are two very different applications, each written with its set of default behaviors.

With MQ cluster-queues, the app can specify whether to BIND_ON_OPEN to one instance of the cluster-queue, or to BIND_NOT_FIXED to any instance of the cluster-queue. There are other open options, along with queue attribute values involved. Read this: https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.5.0/com.ibm.mq.dev.doc/q027030_.htm
_________________
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
View user's profile Send private message
gbaddeley
PostPosted: Thu May 03, 2018 3:46 pm    Post subject: Re: Round Robin in Cluster Reply with quote

Jedi

Joined: 25 Mar 2003
Posts: 2492
Location: Melbourne, Australia

andrewfemin wrote:
Hi,
We have a full repository queue manager which acts as the gateway queue manager.

Generally FR qmgrs should not be doing any messaging, they should only exist to provide MQ's internal cluster update services. You should have exactly 2 FR's for each MQ cluster. Its acceptable for a qmgr to be a FR for multiple clusters.

andrewfemin wrote:
It does not have any local queues. Two partial repository queue manager with identical set of clustered queues connect to the gateway queue manager. The idea is that messages are always sent to the gateway queue manager from outside applications or queue managers and when two messages are sent to a particular queue in the gateway server, the first one gets routed to the queue in one partial repository while the second one goes to the queue in other partial repository, hence achieving load balancing.

By "gateway", do you mean the "outside applications" and "outside queue managers" are outside the enterprise internal network, or outside of the MQ cluster?
_________________
Glenn
Back to top
View user's profile Send private message
andrewfemin
PostPosted: Sun May 06, 2018 9:01 pm    Post subject: Re: Round Robin in Cluster Reply with quote

Acolyte

Joined: 26 Aug 2017
Posts: 54

fjb_saper wrote:
You need to use one of the switches on the RFHUtil panels (don't remember which one you'll have to go hunting). You need to make sure of your open options for the queue: not fixed is the value you're looking for...


Found this in RFHUtil and changed it to Not Fixed. Also, the DEFBIND property of the local queues in both partial repositories were OPEN and I changed them to NOTFIXED as well. The messages are still going to the same queue manager. Does it require a QM restart for the changes to take effect or any other changes to be made?

Back to top
View user's profile Send private message
bruce2359
PostPosted: Mon May 07, 2018 4:18 am    Post subject: Re: Round Robin in Cluster Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9394
Location: US: west coast, almost. Otherwise, enroute.

andrewfemin wrote:
While this round robin routing is working perfectly when I put messages to the gateway queue manager using amqsput, it is not working when I put messages using RFHUtil. All the messages put using RFHUtil go to the same queue manager instead of being round robined. Is this expected behaviour? Or is there any QM parameter that needs to be altered for the messages put in using server connection channels also to be round robined?

Did you specify both the queue-name and target-queue-manager-name when testing with rfhutil?

Re-run your amqsput test with target-queue-manager (5th parameter). Read this documentation on running amqsput and amqsputc: https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.dev.doc/q024270_.htm

The point: if the app explicitly specifies the target-queue-manager in the MQOD (object definition), then messages will only go to the that queue-manager.
_________________
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.


Last edited by bruce2359 on Mon May 07, 2018 12:30 pm; edited 1 time in total
Back to top
View user's profile Send private message
bruce2359
PostPosted: Mon May 07, 2018 12:26 pm    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9394
Location: US: west coast, almost. Otherwise, enroute.

Moved to Clustering forum
_________________
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
View user's profile Send private message
andrewfemin
PostPosted: Mon May 07, 2018 9:10 pm    Post subject: Reply with quote

Acolyte

Joined: 26 Aug 2017
Posts: 54

I haven't specified the queue manager name in RFHUtil. I've specified only the queue name.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Tue May 08, 2018 1:59 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

andrewfemin wrote:
I haven't specified the queue manager name in RFHUtil. I've specified only the queue name.


Doesn't matter much if the queue is local to the queue manager and the cluster distribution attribute for the queue (or the queue manager) is not any...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
andrewfemin
PostPosted: Tue May 08, 2018 2:20 am    Post subject: Reply with quote

Acolyte

Joined: 26 Aug 2017
Posts: 54

Well. My queue is cluster queue and not local to the queue manager.

Let's say I have QM1, QM2 and QM3. QM1 is the full repository while QM2 and QM3 are partial repositories. QM2 and QM3 have local queues Q1(same queue name in both queue managers) which are shared in the cluster with QM1. I'm sending 2 messages to queue manager QM1 and queue Q1 using RFHUtil. I would expect the first message to go to Q1 in QM2 and the second message to go to Q1 in QM3. But this is not happening. Both the messages are going to Q1 in QM2.
Back to top
View user's profile Send private message
exerk
PostPosted: Tue May 08, 2018 2:40 am    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

I'm going to ask the obvious question - before making your changes in RFHUtil, did you first close the queue?
_________________
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
View user's profile Send private message
mvic
PostPosted: Tue May 08, 2018 2:42 am    Post subject: Reply with quote

Jedi

Joined: 09 Mar 2004
Posts: 2080

It is possible (but not easy) to have a look at what decision logic MQ is applying, if you capture the situation in an MQ trace. (-t all -t detail). Format the trace (if this is Linux etc.) and search the .FMT files for rfiChooseOne. The decision logic is traced out somewhere near there.
Back to top
View user's profile Send private message
exerk
PostPosted: Tue May 08, 2018 2:52 am    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

To clarify, as the OPs issue may have been lost in the clutter:

1. The OP connects to a GATEWAY queue manager to put the messages;
2. The GATEWAY queue manager DOES NOT host the queues, which are in two other queue managers;
3. Using amqsput, the load-balancing works 'as advertised';
4. Using RHFUtil, the load-balancing did not work;
5. The OP changed the target queue instances to DEFBIND(NOTFIXED), and also specified the same in RFHUtil.

So there are two issues here:

1. Why did load-balancing occur when the queues were specified as DEFBIND(OPEN) ?
2. Why is it not working now that they are specified as DEFBIND(NOTFIXED) ?

OP, if I have made a mistake anywhere above, please correct me; thank you.
_________________
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
View user's profile Send private message
andrewfemin
PostPosted: Wed May 23, 2018 12:30 am    Post subject: Reply with quote

Acolyte

Joined: 26 Aug 2017
Posts: 54

exerk wrote:
To clarify, as the OPs issue may have been lost in the clutter:

1. The OP connects to a GATEWAY queue manager to put the messages;
2. The GATEWAY queue manager DOES NOT host the queues, which are in two other queue managers;
3. Using amqsput, the load-balancing works 'as advertised';
4. Using RHFUtil, the load-balancing did not work;
5. The OP changed the target queue instances to DEFBIND(NOTFIXED), and also specified the same in RFHUtil.

So there are two issues here:

1. Why did load-balancing occur when the queues were specified as DEFBIND(OPEN) ?
2. Why is it not working now that they are specified as DEFBIND(NOTFIXED) ?

OP, if I have made a mistake anywhere above, please correct me; thank you.

Thanks exerk. This is exactly what I was trying to convey.

exerk wrote:
I'm going to ask the obvious question - before making your changes in RFHUtil, did you first close the queue?

Thanks again. I noticed that I wasn't closing the queue each time while using RFHUtil. I see that after sending each message, if I click on MQClose in RFHUtil, the messages are being round robined and load balancing is working as advertised. Earlier, I was under the impression that RFHUtil closes the connection in the background after each message.

So the only puzzle that remains is this:
exerk wrote:
1. Why did load-balancing occur when the queues were specified as DEFBIND(OPEN)?

Thanks everyone for all the help so far. My requirement is to have the load balancing working using RFHUtil and it is working now thanks to your help.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Clustering » Round Robin in Cluster
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.