Author |
Message
|
masteringmq |
Posted: Sun Nov 30, 2008 5:41 am Post subject: Cluster - Multiple queue manager |
|
|
Master
Joined: 20 Oct 2008 Posts: 200
|
When I put a message on QR(PR.RQSTIN) of QM: PR I expect the message to be placed in QLOCAL(QL.RQST) in either QM: GTW, LB1 or LB2. However my message keeps entering QLOCAL(QL.RQST) of QM: GTW. Did I miss something?.
PR
DEFINE QR(PR.RQSTIN) RNAME(QL.RQST) RQMNAME(GTW) XMITQ(GTW.XMIT)
DEFINE QL(GTW.XMIT) USAGE(XMITQ) TRIGGER TRIGTYPE(FIRST) TRIGDATA(PR.GTW.DF)
DEFINE CHANNEL(LB.GTW.DF) CHLTYPE(SDR) CONNAME('localhost(1415)') XMITQ(GTW.XMIT)
GTW - FULL REPOSITORY
ALTER QMGR REPOS(CLUS2)
DEFINE QLOCAL(QL.RQST) PUT(ENABLED) GET(ENABLED) CLUSTER(CLUS2) DEFBIND(NOTFIXED)
DEFINE CHANNEL(LB.GTW.DF) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('localhost(1415)') CLUSTER(CLUS2)
ALTER QLOCAL(QL.RQST) CLWLUSEQ(QMGR)
ALTER QMGR CLWLUSEQ(ANY)
LB1 - PARTIAL REPOSITORY
DEFINE QLOCAL(QL.RQST) PUT(ENABLED) GET(ENABLED) CLUSTER(CLUS2) DEFBIND(NOTFIXED)
DEFINE CHANNEL(LB.GTW.DF) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('localhost(1415)') CLUSTER(CLUS2)
DEFINE CHANNEL(GTW.LB1.DF) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('localhost(1416)') CLUSTER(CLUS2)
LB2 - PARTIAL REPOSITORY
DEFINE QLOCAL(QL.RQST) PUT(ENABLED) GET(ENABLED) CLUSTER(CLUS2) DEFBIND(NOTFIXED)
DEFINE CHANNEL(LB.GTW.DF) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('localhost(1415)') CLUSTER(CLUS2)
DEFINE CHANNEL(GTW.LB2.DF) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('localhost(1417)') CLUSTER(CLUS2)
Last edited by masteringmq on Sun Nov 30, 2008 9:14 am; edited 2 times in total |
|
Back to top |
|
 |
PeterPotkay |
Posted: Sun Nov 30, 2008 6:16 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Its doing what you told it too.
Quote: |
DEFINE QR(PR.RQSTIN) RNAME(QL.RQST) RQMNAME(GTW) XMITQ(GTW.XMIT) |
That's pretty explicit. You said only go to the q on the GTW QM.
Change it to this:
DEFINE QR(PR.RQSTIN) RNAME(QL.RQST) RQMNAME(CLUS2) XMITQ(GTW.XMIT)
Edit: Removed invalid parm for a remote q def. The above is now correct.
And on GTW add this:
DEFINE QR(CLUS2) RNAME() RQMNAME() XMITQ()
I assume you have a 2nd Full Repository somewhere? _________________ Peter Potkay
Keep Calm and MQ On
Last edited by PeterPotkay on Sun Nov 30, 2008 9:34 am; edited 1 time in total |
|
Back to top |
|
 |
fjb_saper |
Posted: Sun Nov 30, 2008 6:43 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
and you might want to add
ALTER QR(PR.RQSTIN) DEFBIND(NOTFIXED)
Although this should really happen inside the application (takes precedence over queue settings)...
I'd certainly add it to the cluster ALIAS, and I would make the cluster alias a clustered queue.
Have fun.  _________________ MQ & Broker admin |
|
Back to top |
|
 |
masteringmq |
Posted: Sun Nov 30, 2008 8:28 am Post subject: |
|
|
Master
Joined: 20 Oct 2008 Posts: 200
|
Quote: |
DEFINE QR(PR.RQSTIN) RNAME(QL.RQST) RQMNAME(CLUS2) XMITQ(GTW.XMIT) CLWLUSEQ (QMGR) |
Invalid syntax. |
|
Back to top |
|
 |
masteringmq |
Posted: Sun Nov 30, 2008 9:20 am Post subject: |
|
|
Master
Joined: 20 Oct 2008 Posts: 200
|
According to the manual adding this
ALTER QLOCAL(QL.RQST) CLWLUSEQ(QMGR)
ALTER QMGR CLWLUSEQ(ANY)
on the GTW is sufficient. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Sun Nov 30, 2008 9:33 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
masteringmq wrote: |
Quote: |
DEFINE QR(PR.RQSTIN) RNAME(QL.RQST) RQMNAME(CLUS2) XMITQ(GTW.XMIT) CLWLUSEQ (QMGR) |
Invalid syntax. |
DEFINE QR(PR.RQSTIN) RNAME(QL.RQST) RQMNAME(CLUS2) XMITQ(GTW.XMIT)
masteringmq wrote: |
According to the manual adding this
ALTER QLOCAL(QL.RQST) CLWLUSEQ(QMGR)
ALTER QMGR CLWLUSEQ(ANY)
on the GTW is sufficient. |
It is. For that definition. But your q remote, as you had it originally defined, overrides it because you explicitly are saying only go to GTW. The same effect could be achieved by a sending app that doesn't even use the Remote Q Def but instead does an MQOPEN / MQPUT1 to QL.RQST while at the same time specifying the GTW QM name in the MQOD's Object Queue Manager Name filed. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
masteringmq |
Posted: Sun Nov 30, 2008 5:32 pm Post subject: |
|
|
Master
Joined: 20 Oct 2008 Posts: 200
|
On PR I add this:
DEFINE QR(PR.RQSTIN) RNAME(QL.RQST) RQMNAME(CLUS2) XMITQ(GTW.XMIT)
On GTW I add this:
DEFINE QR(CLUS2)
But my messages keep entering the QL.RQSTIN of GTW. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Sun Nov 30, 2008 6:37 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Fix the CLWLUSEQ atttribute for that q on GTW, and / or stop using BIND_ON_OPEN. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
masteringmq |
Posted: Sun Nov 30, 2008 7:12 pm Post subject: |
|
|
Master
Joined: 20 Oct 2008 Posts: 200
|
On GTW I did:
DEFINE QR(PR.RQSTIN) RNAME(QL.RQST) RQMNAME(CLUS2) XMITQ(GTW.XMIT) DEFBIND(NOTFIXED)
and for CLWLUSEQ I tried Local, Any. The result is unchanged. |
|
Back to top |
|
 |
fjb_saper |
Posted: Sun Nov 30, 2008 7:23 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
On the GTW do:
Code: |
On GTW I add this:
DEFINE QR(CLUS2) CLUSTER(CLUS2) DEFBIND(NOTFIXED) |
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
masteringmq |
Posted: Sun Nov 30, 2008 7:32 pm Post subject: |
|
|
Master
Joined: 20 Oct 2008 Posts: 200
|
Yes, On GTW I add this:
DEFINE QR(CLUS2) CLUSTER(CLUS2) DEFBIND(NOTFIXED) but the result remain the same. |
|
Back to top |
|
 |
masteringmq |
Posted: Sun Nov 30, 2008 7:35 pm Post subject: |
|
|
Master
Joined: 20 Oct 2008 Posts: 200
|
PR
DEFINE QR(PR.RQSTIN) RNAME(QL.RQST) RQMNAME(CLUS2) XMITQ(GTW.XMIT) DEFBIND(NOTFIXED)
DEFINE QL(GTW.XMIT) USAGE(XMITQ) TRIGGER TRIGTYPE(FIRST) TRIGDATA(PR.GTW.DF)
DEFINE CHANNEL(LB.GTW.DF) CHLTYPE(SDR) CONNAME('localhost(1415)') XMITQ(GTW.XMIT)
GTW - FULL REPOSITORY
ALTER QMGR REPOS(CLUS2)
DEFINE QLOCAL(QL.RQST) PUT(ENABLED) GET(ENABLED) CLUSTER(CLUS2) DEFBIND(NOTFIXED)
DEFINE CHANNEL(LB.GTW.DF) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('localhost(1415)') CLUSTER(CLUS2)
DEFINE QR(CLUS2) CLUSTER(CLUS2) DEFBIND(NOTFIXED)
ALTER QLOCAL(QL.RQST) CLWLUSEQ(QMGR)
ALTER QMGR CLWLUSEQ(ANY)
LB1 - PARTIAL REPOSITORY
DEFINE QLOCAL(QL.RQST) PUT(ENABLED) GET(ENABLED) CLUSTER(CLUS2) DEFBIND(NOTFIXED)
DEFINE CHANNEL(LB.GTW.DF) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('localhost(1415)') CLUSTER(CLUS2)
DEFINE CHANNEL(GTW.LB1.DF) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('localhost(1416)') CLUSTER(CLUS2)
LB2 - PARTIAL REPOSITORY
DEFINE QLOCAL(QL.RQST) PUT(ENABLED) GET(ENABLED) CLUSTER(CLUS2) DEFBIND(NOTFIXED)
DEFINE CHANNEL(LB.GTW.DF) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('localhost(1415)') CLUSTER(CLUS2)
DEFINE CHANNEL(GTW.LB2.DF) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('localhost(1417)') CLUSTER(CLUS2)
Last edited by masteringmq on Sun Nov 30, 2008 10:50 pm; edited 1 time in total |
|
Back to top |
|
 |
fjb_saper |
Posted: Sun Nov 30, 2008 9:21 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
ON PR1
Code: |
DEFINE QR(PR.RQSTIN) RNAME(QL.RQST) RQMNAME(CLUS2) XMITQ(GTW.XMIT) DEFBIND(NOTFIXED) |
Note that with the cluster alias being a clustered queue and PR1 being part of the cluster the XMITQ notation should not be necessary.
However should you use en entry point outside the cluster you will need to specify the xmitq to the entrypoint to the cluster.  _________________ MQ & Broker admin |
|
Back to top |
|
 |
masteringmq |
Posted: Sun Nov 30, 2008 10:53 pm Post subject: |
|
|
Master
Joined: 20 Oct 2008 Posts: 200
|
PR is outside the cluster. I also added DEFBIND(NOTFIXED) attribute for the QR(PR.RQSTIN). The result remain unchange. |
|
Back to top |
|
 |
Vitor |
Posted: Mon Dec 01, 2008 12:09 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
masteringmq wrote: |
PR is outside the cluster. I also added DEFBIND(NOTFIXED) attribute for the QR(PR.RQSTIN). The result remain unchange. |
You should check that the application is using the default binding. If the app has specified BIND_ON_OPEN you can change the definition until doomsday and the results won't change. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|