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 » Load balancing messages received from outside the cluster

Post new topic  Reply to topic Goto page Previous  1, 2, 3  Next
 Load balancing messages received from outside the cluster « View previous topic :: View next topic » 
Author Message
jeevan
PostPosted: Fri Sep 04, 2009 9:39 am    Post subject: Reply with quote

Grand Master

Joined: 12 Nov 2005
Posts: 1432

bruce2359 wrote:
Quote:
Note: The messages are going to the DLQ of qmgr1 SC1.

Look at the DeadLetterHeader of one of the messages in the DLQ.
What is the reasoncode?
What is the destination qmgr name?
What is the destination queue name?


What is the reasoncode?
Unkmnown remote queue manager
SC_CLUSTER ( as peter suggested, I put the cluster name in the remote queue manager name in remote queue at TEST QMGR)

Destination queue name is correct> SC.REQ
Back to top
View user's profile Send private message
bruce2359
PostPosted: Fri Sep 04, 2009 9:55 am    Post subject: Reply with quote

Poobah

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

Mr Potkay continued on to say: The destination QM should be the name of the cluster, and on the gateway QM you need a QM Alias that blanks out the destination QM so that the cluster is free to look for instances of the queue.
_________________
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
jeevan
PostPosted: Fri Sep 04, 2009 10:10 am    Post subject: Reply with quote

Grand Master

Joined: 12 Nov 2005
Posts: 1432

bruce2359 wrote:
Mr Potkay continued on to say: The destination QM should be the name of the cluster, and on the gateway QM you need a QM Alias that blanks out the destination QM so that the cluster is free to look for instances of the queue.



if you see my mq definition in above post, you can see


* Remote Queues
DEFINE QREMOTE('SC.REMOTE') +
DESCR(' ') RNAME('SC.REQ') +
RQMNAME('SC_CLUSTER') XMITQ('SC1') DEFPRTY(0) +
PUT(ENABLED) DEFPSIST(NO) CLUSTER(' ') +
CLUSNL(' ') DEFBIND(OPEN) REPLACE

SC_CLUSTER is the cluster name



*Alias QMgrs

DEFINE QREMOTE('SC1') +
DESCR(' ') RNAME(' ') +
RQMNAME(' ') XMITQ(' ') DEFPRTY(0) +
PUT(ENABLED) DEFPSIST(NO) CLUSTER(' ') +
CLUSNL(' ') DEFBIND(OPEN) REPLACE

the RQMNAME parameter of the qmgr alias is blank out.

What else?
Back to top
View user's profile Send private message
mqjeff
PostPosted: Fri Sep 04, 2009 10:57 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

You need to tell amqsput to specify a different remote qmgr than the one you have told it to use for connection.

Or not use amqsput to test this.
Back to top
View user's profile Send private message
jeevan
PostPosted: Fri Sep 04, 2009 11:27 am    Post subject: Reply with quote

Grand Master

Joined: 12 Nov 2005
Posts: 1432

mqjeff wrote:
You need to tell amqsput to specify a different remote qmgr than the one you have told it to use for connection.

Or not use amqsput to test this.


what queue manager can I tell the amqsput to connect to and the put the message?

Lets say, i write a small java app, what queue manager do I need to tell as destiniation queue manager?

Thansk
Back to top
View user's profile Send private message
exerk
PostPosted: Fri Sep 04, 2009 3:05 pm    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

You got MQRC_UNKNOWN_REMOTE_QUEUE_MANAGER because of:

DEFINE QREMOTE('SC.REMOTE') +
DESCR(' ') RNAME('SC.REQ') +
RQMNAME('SC_CLUSTER') XMITQ('SC1') DEFPRTY(0) +
PUT(ENABLED) DEFPSIST(NO) CLUSTER(' ') +
CLUSNL(' ') DEFBIND(OPEN) REPLACE

Replace the SC1 QR with one named SC_CLUSTER, use amqsput and connect to TEST1 and put to the SC.REMOTE 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
jeevan
PostPosted: Fri Sep 04, 2009 3:28 pm    Post subject: Reply with quote

Grand Master

Joined: 12 Nov 2005
Posts: 1432

exerk wrote:
You got MQRC_UNKNOWN_REMOTE_QUEUE_MANAGER because of:

DEFINE QREMOTE('SC.REMOTE') +
DESCR(' ') RNAME('SC.REQ') +
RQMNAME('SC_CLUSTER') XMITQ('SC1') DEFPRTY(0) +
PUT(ENABLED) DEFPSIST(NO) CLUSTER(' ') +
CLUSNL(' ') DEFBIND(OPEN) REPLACE

Replace the SC1 QR with one named SC_CLUSTER, use amqsput and connect to TEST1 and put to the SC.REMOTE queue.


if I replace SC_CLUSTER with SC1, all the message go to SC1 not SC2. If I put SC_CLUSTER in remote queue manager field as I have now, then the message go to deadletter queue of qmgr SC1.
Back to top
View user's profile Send private message
exerk
PostPosted: Fri Sep 04, 2009 3:37 pm    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

Please read what I posted...but to make it more explicit:

In queue manager SC1, define a QR named SC_CLUSTER
_________________
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
jeevan
PostPosted: Fri Sep 04, 2009 7:15 pm    Post subject: Reply with quote

Grand Master

Joined: 12 Nov 2005
Posts: 1432

exerk wrote:
Please read what I posted...but to make it more explicit:

In queue manager SC1, define a QR named SC_CLUSTER


It did the trick. it worked. I was not sure when peter said to create a qmgr alias.

Thanks exerk, Peter, bruce2359 and all who contributed in the discussion and helped to make it happened.

wish you all happy long holiday
Back to top
View user's profile Send private message
bruce2359
PostPosted: Sat Sep 05, 2009 6:44 am    Post subject: Reply with quote

Poobah

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

Quote:
It did the trick. it worked. I was not sure when peter said to create a qmgr alias.

Queue manager alias definitions remain a mystery for many. Please post your definition for the enjoyment of all.
_________________
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
jeevan
PostPosted: Sat Sep 05, 2009 7:21 am    Post subject: Reply with quote

Grand Master

Joined: 12 Nov 2005
Posts: 1432

bruce2359 wrote:
Quote:
It did the trick. it worked. I was not sure when peter said to create a qmgr alias.

Queue manager alias definitions remain a mystery for many. Please post your definition for the enjoyment of all.


I agree with you. I have setup a hub and spoke network using qmgr alias such that it works like a cluster but still I get confused witih it. Anyway, I am posting all the script for my mq obj definition for your enjoyment( borrowing your words).

************************************************************

Here is the complete def of mq objects which is working

********************************** ************************************
*This queue manager is out of cluster. The message originates from this queue manager.
*
*I used amqsput utility to send message to cluster queue manager.

* >> TEST1
* Sender Channels

DEFINE CHANNEL('TEST1.TO.SC1') CHLTYPE(SDR) +
TRPTYPE(TCP) XMITQ('SC1') +
CONNAME('10.16.178.133(1416)') DESCR(' ') MCANAME(' ') +
BATCHSZ(50) BATCHINT(0) HBINT(300) +
DISCINT(6000) SHORTRTY(10) SHORTTMR(60) +
LONGRTY(999999999) LONGTMR(1200) SCYEXIT(' ') +
SCYDATA(' ') MSGEXIT(' ') MSGDATA(' ') +
SENDEXIT(' ') SENDDATA(' ') RCVEXIT(' ') +
RCVDATA(' ') SEQWRAP(999999999) MAXMSGL(4194304) +
CONVERT(NO) NPMSPEED(FAST) MCATYPE(PROCESS) +
MCAUSER(' ') USERID(' ') +
BATCHHB(0) KAINT(AUTO) LOCLADDR(' ') +
SSLCIPH(' ') SSLPEER(' ') REPLACE


* Alias Queues
DEFINE QALIAS('SC.REQ') +
DESCR(' ') TARGQ('SC.REMOTE') +
DEFPRTY(0) PUT(ENABLED) GET(ENABLED) +
DEFPSIST(NO) CLUSTER(' ') CLUSNL(' ') +
DEFBIND(OPEN) REPLACE



* Remote Queues
DEFINE QREMOTE('SC.REMOTE') +
DESCR(' ') RNAME('SC.REQ') +
RQMNAME('SC_CLUSTER') XMITQ('SC1') DEFPRTY(0) +
PUT(ENABLED) DEFPSIST(NO) CLUSTER(' ') +
CLUSNL(' ') DEFBIND(NOTFIXED) REPLACE

* xmitq Queues
DEFINE QLOCAL('SC1') +
DESCR(' ') SHARE +
TRIGMPRI(0) TRIGDPTH(1) TRIGTYPE(FIRST) +
TRIGDATA('TEST1.TO.SC1') BOQNAME(' ') PROCESS(' ') +
DEFPRTY(0) MAXMSGL(4194304) BOTHRESH(0) +
TRIGGER DEFSOPT(SHARED) HARDENBO +
MSGDLVSQ(PRIORITY) PUT(ENABLED) GET(ENABLED) +
DEFPSIST(NO) USAGE(XMITQ) RETINTVL(999999999) +
MAXDEPTH(5000) QDEPTHLO(20) QDEPTHHI(80) +
QSVCINT(999999999) QSVCIEV(NONE) +
QDPMAXEV(ENABLED) INITQ('SYSTEM.CHANNEL.INITQ') QDPHIEV(DISABLED) +
QDPLOEV(DISABLED) CLUSTER(' ') CLUSNL(' ') +
DEFBIND(OPEN) REPLACE

* **************************************************************************
* The queue managers SC1 and SC2 are cluster queue managers. SC.REQ is the cluster queue in which the message is put.
***********************************************************************
* Queue Manager SC1

ALTER QMGR DESCR(' ') TRIGINT(999999999) +
DEADQ('SYSTEM.DEAD.LETTER.QUEUE') DEFXMITQ(' ') +
MAXHANDS(256) AUTHOREV(DISABLED) INHIBTEV(DISABLED) +
LOCALEV(DISABLED) REMOTEEV(DISABLED) STRSTPEV(ENABLED) +
PERFMEV(DISABLED) CCSID(437) MAXMSGL(4194304) +
CHADEV(DISABLED) CHAD(DISABLED) CHADEXIT(' ') +
MAXUMSGS(10000) REPOS('SC_CLUSTER') REPOSNL(' ') +
CLWLEXIT(' ') CLWLDATA(' ') CLWLLEN(100) +
CONFIGEV(DISABLED) SSLTASKS(0) SSLCRYP( ) +
SSLCRLNL(' ') SSLKEYR('D:\mqm\qmgrs\SC1\ssl\key') FORCE



* Receiver Channels

DEFINE CHANNEL('TEST1.TO.SC1') CHLTYPE(RCVR) +
TRPTYPE(TCP) DESCR(' ') +
BATCHSZ(50) HBINT(300) +
MRTMR(1000) MRRTY(10) SCYEXIT(' ') +
SCYDATA(' ') MSGEXIT(' ') MSGDATA(' ') +
SENDEXIT(' ') SENDDATA(' ') RCVEXIT(' ') +
RCVDATA(' ') PUTAUT(DEF) SEQWRAP(999999999) +
MAXMSGL(4194304) NPMSPEED(FAST) MCAUSER(' ') +
MREXIT(' ') MRDATA(' ') +
KAINT(AUTO) SSLCIPH(' ') SSLPEER(' ') +
SSLCAUTH(REQUIRED) REPLACE


* Cluster Receiver Channels

DEFINE CHANNEL('TO.SC1') CHLTYPE(CLUSRCVR) +
TRPTYPE(TCP) CONNAME('10.16.178.133(1416)') +
DESCR(' ') +
BATCHSZ(50) +
BATCHINT(0) HBINT(300) MRTMR(1000) +
MRRTY(10) DISCINT(6000) SHORTRTY(10) +
SHORTTMR(60) LONGRTY(999999999) LONGTMR(1200) +
SCYEXIT(' ') SCYDATA(' ') MSGEXIT(' ') +
MSGDATA(' ') SENDEXIT(' ') SENDDATA(' ') +
RCVEXIT(' ') RCVDATA(' ') PUTAUT(DEF) +
SEQWRAP(999999999) MAXMSGL(4194304) CONVERT(NO) +
NPMSPEED(FAST) MCATYPE(THREAD) MCAUSER(' ') +
MREXIT(' ') MRDATA(' ') CLUSTER('SC_CLUSTER') +
CLUSNL(' ') NETPRTY(0) BATCHHB(0) +
KAINT(AUTO) LOCLADDR(' ') SSLCIPH(' ') +
SSLPEER(' ') SSLCAUTH(REQUIRED) REPLACE


* Local Queues

DEFINE QLOCAL('SC.REQ') +
DESCR(' ') SHARE +
TRIGMPRI(0) TRIGDPTH(1) TRIGTYPE(FIRST) +
TRIGDATA(' ') BOQNAME(' ') PROCESS(' ') +
DEFPRTY(0) MAXMSGL(4194304) BOTHRESH(0) +
NOTRIGGER DEFSOPT(SHARED) HARDENBO +
MSGDLVSQ(PRIORITY) PUT(ENABLED) GET(ENABLED) +
DEFPSIST(NO) USAGE(NORMAL) RETINTVL(999999999) +
MAXDEPTH(5000) QDEPTHLO(20) QDEPTHHI(80) +
QSVCINT(999999999) QSVCIEV(NONE) +
QDPMAXEV(ENABLED) INITQ(' ') QDPHIEV(DISABLED) +
QDPLOEV(DISABLED) CLUSTER('SC_CLUSTER') CLUSNL(' ') +
DEFBIND(NOTFIXED) REPLACE


* Alias QMgrs

DEFINE QREMOTE('SC_CLUSTER') +
DESCR(' ') RNAME(' ') +
RQMNAME(' ') XMITQ(' ') DEFPRTY(0) +
PUT(ENABLED) DEFPSIST(NO) CLUSTER(' ') +
CLUSNL(' ') DEFBIND(OPEN) REPLACE

***********************************************************************
* >> Queue Manager SC2

* Cluster Receiver Channels

DEFINE CHANNEL('TO.SC2') CHLTYPE(CLUSRCVR) +
TRPTYPE(TCP) CONNAME('10.16.178.133(1417)') +
DESCR(' ') +
BATCHSZ(50) +
BATCHINT(0) HBINT(300) MRTMR(1000) +
MRRTY(10) DISCINT(6000) SHORTRTY(10) +
SHORTTMR(60) LONGRTY(999999999) LONGTMR(1200) +
SCYEXIT(' ') SCYDATA(' ') MSGEXIT(' ') +
MSGDATA(' ') SENDEXIT(' ') SENDDATA(' ') +
RCVEXIT(' ') RCVDATA(' ') PUTAUT(DEF) +
SEQWRAP(999999999) MAXMSGL(4194304) CONVERT(NO) +
NPMSPEED(FAST) MCATYPE(THREAD) MCAUSER(' ') +
MREXIT(' ') MRDATA(' ') CLUSTER('SC_CLUSTER') +
CLUSNL(' ') NETPRTY(0) BATCHHB(0) +
KAINT(AUTO) LOCLADDR(' ') SSLCIPH(' ') +
SSLPEER(' ') SSLCAUTH(REQUIRED) REPLACE

* Cluster Sender Channels

DEFINE CHANNEL('TO.SC1') CHLTYPE(CLUSSDR) +
TRPTYPE(TCP) CONNAME('10.16.178.133(1416)') +
DESCR(' ') MCANAME(' ') +
BATCHSZ(50) +
BATCHINT(0) HBINT(300) DISCINT(6000) +
SHORTRTY(10) SHORTTMR(60) LONGRTY(999999999) +
LONGTMR(1200) SCYEXIT(' ') SCYDATA(' ') +
MSGEXIT(' ') MSGDATA(' ') SENDEXIT(' ') +
SENDDATA(' ') RCVEXIT(' ') RCVDATA(' ') +
SEQWRAP(999999999) MAXMSGL(4194304) CONVERT(NO) +
NPMSPEED(FAST) MCATYPE(THREAD) MCAUSER(' ') +
USERID(' ') CLUSTER('SC_CLUSTER') +
CLUSNL(' ') BATCHHB(0) KAINT(AUTO) +
LOCLADDR(' ') SSLCIPH(' ') SSLPEER(' ') +
REPLACE


* Local Queues
DEFINE QLOCAL('SC.REQ') +
DESCR(' ') SHARE +
TRIGMPRI(0) TRIGDPTH(1) TRIGTYPE(FIRST) +
TRIGDATA(' ') BOQNAME(' ') PROCESS(' ') +
DEFPRTY(0) MAXMSGL(4194304) BOTHRESH(0) +
NOTRIGGER DEFSOPT(SHARED) HARDENBO +
MSGDLVSQ(PRIORITY) PUT(ENABLED) GET(ENABLED) +
DEFPSIST(NO) USAGE(NORMAL) RETINTVL(999999999) +
MAXDEPTH(5000) QDEPTHLO(20) QDEPTHHI(80) +
QSVCINT(999999999) QSVCIEV(NONE) +
QDPMAXEV(ENABLED) INITQ(' ') QDPHIEV(DISABLED) +
QDPLOEV(DISABLED) CLUSTER('SC_CLUSTER') CLUSNL(' ') +
DEFBIND(NOTFIXED) REPLACE
Back to top
View user's profile Send private message
exerk
PostPosted: Sat Sep 05, 2009 12:59 pm    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

bruce2359 wrote:
Queue manager alias definitions remain a mystery for many...


And more so it seems where clusters are concerned. When explaining the use of gateway queue managers as entry points into a cluster, I normally refer to the type of alias defined by jeevan as a cluster queue manager alias as it seems easier for people to visualise how it works.
_________________
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
bruce2359
PostPosted: Sat Sep 05, 2009 2:52 pm    Post subject: Reply with quote

Poobah

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

name resolution
the queue manager searches
to discover where
_________________
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
George Carey
PostPosted: Thu Sep 24, 2009 9:55 am    Post subject: very apropo Reply with quote

Knight

Joined: 29 Jan 2007
Posts: 500
Location: DC

I was just going to ask about a cluster queue resolution problem (remote site having messages go into DLQ instead of onto Cluster Qs)that was exactly what this discussion was about.

I recalled what I think was Peter Ps description was how it should be done as well! I will forward this on to remote site admins for review.

Bruce mentioned Name resolution ... If IBM would post that algoritm for review (maybe it is some where in doco) that is the key.

I remember the original (pre-cursor product to MQSeries) vendor had documentation with a 1/2 page on the Name resolution algorithm ... maybe even a single paragraph(short enough that I had it memorized for a time) ... that seemed to hold true on all subsequent versions into modern times.

It would be very useful to have that original doco(if not extant) and IBM's formal algorithm put side by side for all MQers to read and study.
_________________
"Truth is ... grasping the virtually unconditioned",
Bernard F. Lonergan S.J.
(from book titled "Insight" subtitled "A Study of Human Understanding")
Back to top
View user's profile Send private message Visit poster's website AIM Address
Vitor
PostPosted: Thu Sep 24, 2009 10:08 am    Post subject: Re: very apropo Reply with quote

Grand High Poobah

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

George Carey wrote:
If IBM would post that algoritm for review (maybe it is some where in doco) that is the key.


It's here though it does still take some figuring in complex situations.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page Previous  1, 2, 3  Next Page 2 of 3

MQSeries.net Forum Index » Clustering » Load balancing messages received from outside the 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.