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 » IBM MQ API Support » Put message to a specific cluster

Post new topic  Reply to topic
 Put message to a specific cluster « View previous topic :: View next topic » 
Author Message
KIT_INC
PostPosted: Fri Aug 07, 2009 11:08 am    Post subject: Put message to a specific cluster Reply with quote

Knight

Joined: 25 Aug 2006
Posts: 589

We have a program running on QM1. QM1 is a member of MQ CLSUTER (MQCLU_A). The program is putting message to a queue called ORDER. ORDER is a cluster local Q on QM3, QM4, QM5 which are members of MQCLU_A.So messages from QM1 are round robinned to QM3 QM4 and QM5. There is no remote defintion on QM1 for ORDER.
Everything has been working fine until the application reported missing messages.
The problem was found out to be caused by QM1 joined another Cluster (MQCLU_B) and QM13 which is a member of MQCLU_B happen to have a clsuter Q also called ORDER. The missing messages were re-directed to ORDER on QM13.
Is this something that the application has to do for the message to only go to ORDER in MQCLU_A? This application can only be run on QM1.
Back to top
View user's profile Send private message
Vitor
PostPosted: Fri Aug 07, 2009 11:31 am    Post subject: Re: Put message to a specific cluster Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

KIT_INC wrote:
Is this something that the application has to do for the message to only go to ORDER in MQCLU_A? This application can only be run on QM1.


Applications can never control the destination of a cluster message; the only slight exception is if the application does a BIND_ON_OPEN. Even then, you can't control which of the cluster targets the binding occurs to.

I see 2 major options (there may be others):

Abandon cluster workload balancing and have the distribution done by the application to the "valid" queue managers;

Fix your cluster set up so the messages are delivered correctly.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
Vitor
PostPosted: Fri Aug 07, 2009 11:38 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

Alright, the 3rd option is to do a custom cluster workload exit. Sledgehammer to crack a nut but it is an option.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Fri Aug 07, 2009 1:02 pm    Post subject: Reply with quote

Poobah

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

Quote:
The problem was found out to be ... another Cluster (MQCLU_B) and QM13 ... a clsuter Q also called ORDER.

The problem, as you pointed out, is the same named queue ORDER.

For queues that have affinity (in this case, to a specific cluster), rename ORDER to be more specific to its cluster, like MCLU_B.ORDER. Then create the appropriate definitions on the qmgrs where the application that creates the message(s) are executed.
_________________
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: Sun Aug 09, 2009 3:27 pm    Post subject: Re: Put message to a specific cluster Reply with quote

Jedi

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

Vitor wrote:
KIT_INC wrote:
Is this something that the application has to do for the message to only go to ORDER in MQCLU_A? This application can only be run on QM1.


Applications can never control the destination of a cluster message; the only slight exception is if the application does a BIND_ON_OPEN. Even then, you can't control which of the cluster targets the binding occurs to.

I see 2 major options (there may be others):

Abandon cluster workload balancing and have the distribution done by the application to the "valid" queue managers;

Fix your cluster set up so the messages are delivered correctly.


Your first major option is really a band-aid coding solution to a queue naming and scope problem. It abandons one of the great benefits of using MQ Clusters and creates tighter coupling between asynchronous applications.

So that leaves option 2 as the only recommended choice.
_________________
Glenn
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Sun Aug 09, 2009 4:48 pm    Post subject: Re: Put message to a specific cluster Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7716

Haven't tried this, don't know if it will work, but I think it will.

Create a QM Alias (blank for remote q, remote QM and transmit q) called MQCLU_A_ALIAS on QM3, QM4, QM5. Add that QM Alias to the MQCLU_A cluster.

Change the putting app's MQOPEN to specify the queue name (ORDER) AND the destination QM name (MQCLU_A_ALIAS). The messages should only go to QM3, 4 or 5.
_________________
Peter Potkay
Keep Calm and MQ On
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 » IBM MQ API Support » Put message to a specific 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.