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 » General IBM MQ Support » MQ Clustering question

Post new topic  Reply to topic
 MQ Clustering question « View previous topic :: View next topic » 
Author Message
bduncan
PostPosted: Mon Jun 25, 2001 11:21 am    Post subject: Reply with quote

Padawan

Joined: 11 Apr 2001
Posts: 1554
Location: Silicon Valley

POSTED with permission from the original author:

If a clustered queue manager is unreachable or unavailable due to a network error or a QMGR going down or a server crashing... whatever scenario you can think of that would
make a QMGR 'unavailable', the cluster channels to the unavailable QMGR go into a
retrying state. Workload continues to be 'destined' to this unavailable
QMGR. The channels being in a retrying state is not treated as an 'error' condition
and therefore the cluster workload balancing (round-robin) contines to consider this QMGR
as available.
Back to top
View user's profile Send private message Visit poster's website AIM Address
bduncan
PostPosted: Mon Jun 25, 2001 11:31 am    Post subject: Reply with quote

Padawan

Joined: 11 Apr 2001
Posts: 1554
Location: Silicon Valley

Most likely the problem you have encountered is that you opened the clustered queue that is no longer available incorrectly. The MQOPEN command has two parameters: MQOO_BIND_ON_OPEN, and MQOO_BIND_NOT_FIXED that are important to understand when dealing with clustered queues. I believe the default (if you don't specify either) is MQOO_BIND_ON_OPEN which means that the queue manager will resolve the clustered queue (pick a certain instance of it) once on the OPEN, and then for every subsequent MQPUT you issue will go to that instance of the clustered queue - it won't workload balance. In fact, your application will continue to use this specific instance of the clustered queue even if it becomes unavailable (channel in retry mode for instance). The solution is to use the MQOO_BIND_NOT_FIXED parameter on the MQOPEN. This way, every time you do an MQPUT it will re-resolve an instance of the clustered queue, so if a specific instance becomes unavailable the workload balancing algorithm will skip it. You might be wondering why it doesn't default to MQOO_BIND_NOT_FIXED since MQOO_BIND_ON_OPEN seems useless. Well, sometimes you send multiple messages that you would like going to the same machine, so you want to force it to go to a single instance of the clustered queue. And while it appears that MQOO_BIND_ON_OPEN turns off workload balancing, this is not the case. While using this parameter causes every MQPUT to use the same instance of the queue, everytime you issue a new MQOPEN on that queue it WILL workload balance across instances... Hope this helps...


_________________
Brandon Duncan
IBM Certified MQSeries Specialist
MQSeries.net forum moderator
Back to top
View user's profile Send private message Visit poster's website AIM Address
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » MQ Clustering question
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.