Author |
Message
|
exerk |
Posted: Wed May 28, 2008 6:53 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
Nothing that I can see.
I prototyped this some time back including a multi-hop, e.g. qmgr1 -> qmgr2 -> gateway -> cluster. I've gone back over my definitions and can see no mistake in yours. My definitions were:
SOURCE
DEFINE QREMOTE ('EX1') RNAME('EX1') RQMNAME('ANY.QMGR') XMITQ('GATEWAY') REPLACE
GATEWAY
DEFINE QREMOTE ('ANY.QMGR') REPLACE (note:not shared in cluster)
I also quickly rebuilt it and tested only the qmgr2 -> gateway -> cluster element, and it worked fine. _________________ 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 |
|
 |
mquser925 |
Posted: Thu May 29, 2008 6:25 am Post subject: |
|
|
Acolyte
Joined: 22 Apr 2008 Posts: 61
|
So thanks to exerk I found out in v6.0 there is no need for a gateway as long as I alter the queue managers and queues with clwluseq(any) then the messages should distribute throughout the cluster. When I put a message to the qm in the cluster, all the messages are put on the one cluster. Should this setup work or if I specify a remote queue manager will the message be put only on that queue manager? Should the rcvr channel (source.to.qm1) be defined as a cluster queue? If it is not defined to the cluster, do I need an alias to point from the rcvr channel to the cluster channel?
Code: |
#mq script
crtmqm -u SYSTEM.DEAD.LETTER.QUEUE SOURCE
strmqm SOURCE
runmqsc SOURCE << EOF
DEFINE QLOCAL(QM1) USAGE(XMITQ)
DEFINE CHANNEL ('SOURCE.TO.QM1') CHLTYPE(SDR) CONNAME('xx.xxx.x.15(2188)') XMITQ('QM1') TRPTYPE(TCP)
DEFINE QREMOTE(1.Q) RNAME(1.Q) RQMNAME(QM1) XMITQ(QM1)
START CHANNEL ('SOURCE.TO.QM1')
EOF
|
Code: |
#mq script
crtmqm -u SYSTEM.DEAD.LETTER.QUEUE QM1
strmqm QM1
runmqsc QM1 << EOF
ALTER QMGR REPOS('DEMO') CLWLUSEQ(ANY)
DEFINE CHANNEL ('SOURCE.TO.QM1') CHLTYPE(RCVR) TRPTYPE(TCP)
DEFINE CHANNEL(TO.QM1) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('xx.xxx.x.15(2188)') CLUSTER('DEMO') DESCR('TCP Cluster-receiver channel for queue manager QM1') REPLACE
DEFINE CHANNEL(TO.QM2) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('xx.xxx.x.15(2189)') CLUSTER('DEMO') DESCR('TCP Cluster-sender channel from QM1 to repository at QM2') REPLACE
DEFINE QLOCAL(1.Q) CLUSTER('DEMO') PROCESS (QM1.PROCESS) DEFPSIST(YES) INITQ(QM1.INIT.QUEUE) TRIGGER TRIGTYPE(EVERY) CLWLUSEQ(ANY) REPLACE
DEFINE QLOCAL(QM1.INIT.QUEUE) GET(ENABLED)
DEFINE PROCESS(QM1.PROCESS) APPLTYPE(UNIX) APPLICID('java helloworld')
DEFINE LISTENER (QM1.LISTENER) TRPTYPE(TCP) CONTROL(QMGR) PORT(2188)
START LISTENER(QM1.LISTENER)
EOF
runmqtrm -m QM1 -q QM1.INIT.QUEUE &
|
Code: |
#mq script
crtmqm -u SYSTEM.DEAD.LETTER.QUEUE QM2
strmqm QM2
runmqsc QM2 << EOF
ALTER QMGR REPOS('DEMO') CLWLUSEQ(ANY)
DEFINE CHANNEL(TO.QM2) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('xx.xxx.x.15(2189)') CLUSTER('DEMO') DESCR('TCP Cluster-receiver channel for queue manager QM2') REPLACE
DEFINE CHANNEL(TO.QM1) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('xx.xxx.x.15(2188)') CLUSTER('DEMO') DESCR('TCP Cluster-sender channel from QM2 to repository at QM1') REPLACE
DEFINE QLOCAL(1.Q) CLUSTER('DEMO') PROCESS (QM2.PROCESS) DEFPSIST(YES) INITQ(QM2.INIT.QUEUE) TRIGGER TRIGTYPE(EVERY) CLWLUSEQ(ANY) REPLACE
DEFINE QLOCAL(QM2.INIT.QUEUE) GET(ENABLED)
DEFINE PROCESS(QM2.PROCESS) APPLTYPE(UNIX) APPLICID('java helloworld')
DEFINE LISTENER (QM2.LISTENER) TRPTYPE(TCP) CONTROL(QMGR) PORT(2189)
START LISTENER(QM2.LISTENER)
EOF
runmqtrm -m QM2 -q QM2.INIT.QUEUE &
|
|
|
Back to top |
|
 |
fjb_saper |
Posted: Thu May 29, 2008 1:29 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
The cluster manual has the answer to your questions
It also addresses the case where you access the cluster from a non clustered qmgr.
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
tommq |
Posted: Thu Jun 05, 2008 2:39 am Post subject: |
|
|
 Novice
Joined: 18 Jul 2007 Posts: 20
|
in gateway QM change Alias q properties > click Cluster > change Default bind type to notfixed then again place message it will move to your destination. |
|
Back to top |
|
 |
sami.stormrage |
Posted: Tue Jul 08, 2008 1:17 pm Post subject: |
|
|
 Disciple
Joined: 25 Jun 2008 Posts: 186 Location: Bangalore/Singapore
|
Yep u have the definations wrong..
Define a Qremote on Source Qmr:
with RQMName(GATEWAY) RQname(AliasTo.1.Q) ..
Define a clusterQ alias on Gateway Qmgr:
Define QAlias(AliasTo.1.Q) cluster(DEMO) Defbind(NOTFIXED) TARGQ(1.Q)
change ur binds to notfixed on QM1 and QM2 aswell.. And enjoy.. this should work.. or I am goin to shave my head off..
exeption being.. 2082.. due to clustering issues which am currently facing.. ...had altered the GATEWAY Qmgr as a Repos...  _________________ *forgetting everything * |
|
Back to top |
|
 |
sami.stormrage |
Posted: Tue Jul 08, 2008 1:23 pm Post subject: |
|
|
 Disciple
Joined: 25 Jun 2008 Posts: 186 Location: Bangalore/Singapore
|
Code:
DEFINE QREMOTE(ANY.CLUSTER) RNAME(' ') RQMNAME(' ')
what sort of defination is that without having a ClusterQ defined anywhere .. how do u expect the call to resolve at the first place? _________________ *forgetting everything * |
|
Back to top |
|
 |
PeterPotkay |
Posted: Tue Jul 08, 2008 1:38 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
sami.stormrage wrote: |
Code:
DEFINE QREMOTE(ANY.CLUSTER) RNAME(' ') RQMNAME(' ')
what sort of defination is that without having a ClusterQ defined anywhere .. how do u expect the call to resolve at the first place? |
Its a perfectly valid definition. Any message arriving on the QM with this definition with ANY.CLUSTER in the destination QM field will be changed to have nothing for the destination QM, meaning the message will be free to round robin in the cluster. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
exerk |
Posted: Tue Jul 08, 2008 1:44 pm Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
OK, I'm trying to remember what went before, without re-reading the whole thread...
Basics (and some of these may already be done):
1. Define a SDR from SOURCE, the queue manager outside the cluster, to the queue manager inside the cluster you have designated as a gateway (QM1 or QM2) - don't forget to define a RCVR on that queue manager - and an XMITQ of the same name as the gateway queue manager (QM1 or QM2).
2. Define a QR in SOURCE with an RNAME of 1.Q (the cluster queue you are trying to get to) an RQMNAME of ANY.CLUSTER, and the XMITQ should be that of the gateway queue manager (as at step 1.).
3. Define a QR in the gateway queue manager with the name ANY.CLUSTER and leave all other attributes blank.
4. Put a message to the QR defined in step 2. above.
5. See what happens.
sami.stormrage wrote: |
what sort of defination is that without having a ClusterQ defined anywhere .. how do u expect the call to resolve at the first place? |
Because it is a cluster queue manager alias, and should resolve to queue 1.Q which is defined in the cluster - so long as the chain of definitions is correct.
One day, just one day I may beat Mr. PotKay to the punch!  _________________ 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 |
|
 |
sami.stormrage |
Posted: Tue Jul 08, 2008 2:06 pm Post subject: |
|
|
 Disciple
Joined: 25 Jun 2008 Posts: 186 Location: Bangalore/Singapore
|
think.. I should brush-up my knowledge on QmgrAliases before replying back.. and testing this scenerio...  _________________ *forgetting everything * |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Jul 08, 2008 2:44 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
And think about the reply:
on the gateway
Define qr(destqmgroutsidecluster) cluster(mycluster) rqmname(destqmgroutsidecluster) rname('') xmitq(to.destqmgroutsidecluster) defbind (notfixed)
and of course the corresponding channel.
This should allow you to get a reply there from anywhere in the cluster.
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
sami.stormrage |
Posted: Sat Jul 12, 2008 10:24 am Post subject: |
|
|
 Disciple
Joined: 25 Jun 2008 Posts: 186 Location: Bangalore/Singapore
|
EXERK:
Ur Qmgr aliasing doesn't work.. messages end up on the transmission Q to GATEWAY... _________________ *forgetting everything * |
|
Back to top |
|
 |
sami.stormrage |
Posted: Sat Jul 12, 2008 10:36 am Post subject: |
|
|
 Disciple
Joined: 25 Jun 2008 Posts: 186 Location: Bangalore/Singapore
|
@quser925:
The Alias defination on GATEWAY Qmgr should work. And messages should be destributed evenly even though there is no channel to QM2, from GATEWAY Qmgr.
My setup stopped complaining of 2082 error after I restarted my PC.. _________________ *forgetting everything * |
|
Back to top |
|
 |
exerk |
Posted: Sat Jul 12, 2008 11:24 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
sami.stormrage wrote: |
EXERK:
Ur Qmgr aliasing doesn't work.. messages end up on the transmission Q to GATEWAY... |
I beg to differ...the messages should end up on the XMITQ to GATEWAY, then be transmitted to GATEWAY and sprayed across the cluster.
ANY.CLUSTER is a cluster queue manager alias, not a queue manager alias. _________________ 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 |
|
 |
crossland |
Posted: Wed Nov 19, 2008 7:43 am Post subject: |
|
|
Master
Joined: 26 Jun 2001 Posts: 248
|
|
Back to top |
|
 |
Vitor |
Posted: Wed Nov 19, 2008 7:44 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
crossland wrote: |
To fix a 2082 for an alias queue on a gateway queue manager, you need to specify DEFBIND(NOTFIXED). |
As this thread hasn't been updated since the 12th July, I suspect the poster either knows this or has given up & is pursuing a career growing roses.....  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|