Author |
Message
|
jeevan |
Posted: Fri Sep 04, 2009 9:39 am Post subject: |
|
|
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 |
|
 |
bruce2359 |
Posted: Fri Sep 04, 2009 9:55 am Post subject: |
|
|
 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 |
|
 |
jeevan |
Posted: Fri Sep 04, 2009 10:10 am Post subject: |
|
|
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 |
|
 |
mqjeff |
Posted: Fri Sep 04, 2009 10:57 am Post subject: |
|
|
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 |
|
 |
jeevan |
Posted: Fri Sep 04, 2009 11:27 am Post subject: |
|
|
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 |
|
 |
exerk |
Posted: Fri Sep 04, 2009 3:05 pm Post subject: |
|
|
 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 |
|
 |
jeevan |
Posted: Fri Sep 04, 2009 3:28 pm Post subject: |
|
|
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 |
|
 |
exerk |
Posted: Fri Sep 04, 2009 3:37 pm Post subject: |
|
|
 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 |
|
 |
jeevan |
Posted: Fri Sep 04, 2009 7:15 pm Post subject: |
|
|
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 |
|
 |
bruce2359 |
Posted: Sat Sep 05, 2009 6:44 am Post subject: |
|
|
 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 |
|
 |
jeevan |
Posted: Sat Sep 05, 2009 7:21 am Post subject: |
|
|
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 |
|
 |
exerk |
Posted: Sat Sep 05, 2009 12:59 pm Post subject: |
|
|
 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 |
|
 |
bruce2359 |
Posted: Sat Sep 05, 2009 2:52 pm Post subject: |
|
|
 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 |
|
 |
George Carey |
Posted: Thu Sep 24, 2009 9:55 am Post subject: very apropo |
|
|
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 |
|
 |
Vitor |
Posted: Thu Sep 24, 2009 10:08 am Post subject: Re: very apropo |
|
|
 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 |
|
 |
|