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 » Clusters and aliases discussion

Post new topic  Reply to topic Goto page 1, 2  Next
 Clusters and aliases discussion « View previous topic :: View next topic » 
Author Message
mattfarney
PostPosted: Wed Jan 11, 2012 2:46 pm    Post subject: Clusters and aliases discussion Reply with quote

Disciple

Joined: 17 Jan 2006
Posts: 167
Location: Ohio

I'm curious why the cluster resolution works the way it does.
In particular, resolving aliases to clustered objects.

Let's assume I have a cluster with External QM and 3 normal QMs all hosting a clustered local queue named MY.HOME. External has a QMAlias of OUTSIDE. External has a QAlias THEIR.HOME which has a targq of MY.HOME.

If an external system writes to External with a QR with RName MY.HOME and RQName External, the cluster traffic doesn't resolve. (I believe this gets 2085).

If an external system writes to External with a QR with RName of MY.HOME and RQName OUTSIDE, the cluster traffic resolves to an instance of MY.HOME.

If an external system writes to External with a QR with RName of THEIR.HOME and RQName External, the cluster traffic does not resolve. (I believe this gets 2082).

These just seem like odd choices to me. Personally, I think all three of these should resolve correctly. I would not be offended if the alias had an option to force cluster name lookup. Given that clusters are used to (at least partially) to hide implementation from the outside world, relying on application settings for cluster resolution seems needlessly risky.

-mf
Back to top
View user's profile Send private message
bruce2359
PostPosted: Wed Jan 11, 2012 2:49 pm    Post subject: Reply with quote

Poobah

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

It would help a bunch if you posted the actual object definitions with all their (relevant) attributes and values.
_________________
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
mattfarney
PostPosted: Wed Jan 11, 2012 3:18 pm    Post subject: Reply with quote

Disciple

Joined: 17 Jan 2006
Posts: 167
Location: Ohio

I think that's kinda of my point. Most of the values don't matter.

In particular, it doesn't matter what the DEFBIND attribute is.
In these cases, having it BIND_ON_OPEN vs NOTFIXED only affects scenario #2 (in which one instance of MY.HOME gets all of the traffic).

-mf
Back to top
View user's profile Send private message
bruce2359
PostPosted: Wed Jan 11, 2012 3:26 pm    Post subject: Reply with quote

Poobah

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

Name resolution isn't all that different for cluster objects.

Each time mq encounters a name, name resolution takes place - in this order:
First look at local (this qmgr) objects:
1) QLocal
2) QModel
3) QAlias
4) QRemote
Next look in the Partial Repository. If not found there, then ask the Full Repository.

So, to your scenarios:

Quote:
In particular, resolving aliases to clustered objects.

Does the alias have the CLUSTER() attribute? Or does the target of the alias have the CLUSTER() attribute?

This is why I need to see your definitions.
_________________
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
mattfarney
PostPosted: Wed Jan 11, 2012 4:09 pm    Post subject: Reply with quote

Disciple

Joined: 17 Jan 2006
Posts: 167
Location: Ohio

THEIR.HOME on EXTERNAL has no cluster value.
MY.HOME on the other 3 servers has cluster (SOMEQ).
External and the other 3 servers are all members of SOMEQ (two of the three are full repositiories).

-mf
Back to top
View user's profile Send private message
bruce2359
PostPosted: Wed Jan 11, 2012 4:38 pm    Post subject: Reply with quote

Poobah

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

Is this a theoretical problem? Or are there real object definitions?
_________________
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
mattfarney
PostPosted: Wed Jan 11, 2012 5:27 pm    Post subject: Reply with quote

Disciple

Joined: 17 Jan 2006
Posts: 167
Location: Ohio

To further this discussion, I created a quick test environment with actual definitions.

TESTMQ (QM outside cluster)
Code:
DEFINE QLOCAL ('EXTERNAL')  DESCR('WebSphere MQ Default Local Queue')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    CLWLUSEQ(LOCAL)    SCOPE(QMGR)    GET(ENABLED)    MAXDEPTH(5000)    MAXMSGL(4194304)    SHARE    DEFSOPT(SHARED)    MSGDLVSQ(PRIORITY)    HARDENBO    USAGE(XMITQ)    TRIGGER    TRIGTYPE(FIRST)    TRIGDPTH(1)    TRIGMPRI(0)    TRIGDATA(' ')  PROCESS(' ')  INITQ(' ')  RETINTVL(999999999)    BOTHRESH(0)    BOQNAME(' ')  QDEPTHHI(80)    QDEPTHLO(20)    QDPMAXEV(ENABLED)    QDPHIEV(DISABLED)    QDPLOEV(DISABLED)    QSVCINT(999999999)    QSVCIEV(NONE)    DISTL(YES)    NPMCLASS(NORMAL)    STATQ(QMGR)    MONQ(QMGR)    ACCTQ(QMGR)    CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QLOCAL ('TESTDLQ')  DESCR('WebSphere MQ Default Local Queue')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    CLWLUSEQ(LOCAL)    SCOPE(QMGR)    GET(ENABLED)    MAXDEPTH(5000)    MAXMSGL(4194304)    SHARE    DEFSOPT(SHARED)    MSGDLVSQ(PRIORITY)    HARDENBO    USAGE(NORMAL)    NOTRIGGER    TRIGTYPE(FIRST)    TRIGDPTH(1)    TRIGMPRI(0)    TRIGDATA(' ')  PROCESS(' ')  INITQ(' ')  RETINTVL(999999999)    BOTHRESH(0)    BOQNAME(' ')  QDEPTHHI(80)    QDEPTHLO(20)    QDPMAXEV(ENABLED)    QDPHIEV(DISABLED)    QDPLOEV(DISABLED)    QSVCINT(999999999)    QSVCIEV(NONE)    DISTL(NO)    NPMCLASS(NORMAL)    STATQ(QMGR)    MONQ(QMGR)    ACCTQ(QMGR)    CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QREMOTE ('TEST_ALIAS')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    SCOPE(QMGR)    XMITQ('EXTERNAL')  RNAME('THEIR.HOME')  RQMNAME('EXTERNAL')  CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QREMOTE ('TEST_ANON')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    SCOPE(QMGR)    XMITQ('EXTERNAL')  RNAME('MY.HOME')  RQMNAME(' ')  CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QREMOTE ('TEST_EXTERNAL')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    SCOPE(QMGR)    XMITQ('EXTERNAL')  RNAME('MY.HOME')  RQMNAME('EXTERNAL')  CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QREMOTE ('TEST_OUTSIDE')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    SCOPE(QMGR)    XMITQ('EXTERNAL')  RNAME('MY.HOME')  RQMNAME('OUTSIDE')  CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE CHANNEL ('TESTMQ/EXTERNAL') CHLTYPE(SDR)  TRPTYPE(TCP)    BATCHINT(0)    BATCHHB(0)    BATCHSZ(50)    CONNAME('some.ip(1418)')  LOCLADDR(' ')  CONVERT(NO)    DESCR(' ')  DISCINT(6000)    HBINT(300)    LONGRTY(999999999)    LONGTMR(1200)    SHORTRTY(10)    SHORTTMR(60)    MAXMSGL(4194304)    MCATYPE(PROCESS)    MCAUSER(' ')  MSGDATA(' ')  MSGEXIT(' ')  NPMSPEED(FAST)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    USERID(' ')  XMITQ('EXTERNAL')  SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(OFF)    STATCHL(OFF)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE LISTENER ('LISTENER')  TRPTYPE(TCP)    IPADDR(' ')  PORT(1417)    BACKLOG(0)    DESCR('Migrated from Listener')  CONTROL(QMGR)    REPLACE


EXTERNAL (non-repos QM in CLUSTER)
Code:
DEFINE QLOCAL ('EXTDLQ')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    CLWLUSEQ(QMGR)    SCOPE(QMGR)    GET(ENABLED)    MAXDEPTH(5000)    MAXMSGL(4194304)    SHARE    DEFSOPT(SHARED)    MSGDLVSQ(PRIORITY)    HARDENBO    USAGE(NORMAL)    NOTRIGGER    TRIGTYPE(FIRST)    TRIGDPTH(1)    TRIGMPRI(0)    TRIGDATA(' ')  PROCESS(' ')  INITQ(' ')  RETINTVL(999999999)    BOTHRESH(0)    BOQNAME(' ')  QDEPTHHI(80)    QDEPTHLO(20)    QDPMAXEV(ENABLED)    QDPHIEV(DISABLED)    QDPLOEV(DISABLED)    QSVCINT(999999999)    QSVCIEV(NONE)    DISTL(NO)    NPMCLASS(NORMAL)    STATQ(QMGR)    MONQ(QMGR)    ACCTQ(QMGR)    CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QREMOTE ('OUTSIDE')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    SCOPE(QMGR)    XMITQ(' ')  RNAME(' ')  RQMNAME(' ')  CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QALIAS ('THEIR.HOME')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    SCOPE(QMGR)    GET(ENABLED)    TARGQ(' ')  CLUSTER(' ')  CLUSNL(' ')  DEFBIND(NOTFIXED)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE CHANNEL ('TESTMQ/EXTERNAL') CHLTYPE(RCVR)  TRPTYPE(TCP)    BATCHSZ(50)    DESCR(' ')  HBINT(300)    MAXMSGL(4194304)    MCAUSER(' ')  MRDATA(' ')  MREXIT(' ')  MRRTY(10)    MRTMR(1000)    MSGDATA(' ')  MSGEXIT(' ')  NPMSPEED(FAST)    PUTAUT(DEF)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    SSLCAUTH(REQUIRED)    SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(QMGR)    STATCHL(QMGR)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE CHANNEL ('TO_EXTERNAL') CHLTYPE(CLUSRCVR)  TRPTYPE(TCP)    BATCHINT(0)    BATCHHB(0)    BATCHSZ(50)    CLUSTER('MYCLUS')  CLUSNL(' ')  CONNAME('some.ip(1418)')  LOCLADDR(' ')  CONVERT(NO)    DESCR(' ')  DISCINT(6000)    HBINT(300)    LONGRTY(999999999)    LONGTMR(1200)    SHORTRTY(10)    SHORTTMR(60)    MAXMSGL(4194304)    MCATYPE(THREAD)    MCAUSER(' ')  MRDATA(' ')  MREXIT(' ')  MRRTY(10)    MRTMR(1000)    MSGDATA(' ')  MSGEXIT(' ')  NETPRTY(0)    NPMSPEED(FAST)    PUTAUT(DEF)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    SSLCAUTH(REQUIRED)    SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(QMGR)    STATCHL(QMGR)    CLWLPRTY(0)    CLWLRANK(0)    CLWLWGHT(50)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE CHANNEL ('TO_INTERNAL1') CHLTYPE(CLUSSDR)  TRPTYPE(TCP)    BATCHINT(0)    BATCHHB(0)    BATCHSZ(50)    CLUSTER('MYCLUS')  CLUSNL(' ')  CONNAME('some.ip(1419)')  LOCLADDR(' ')  CONVERT(NO)    DESCR(' ')  DISCINT(6000)    HBINT(300)    LONGRTY(999999999)    LONGTMR(1200)    SHORTRTY(10)    SHORTTMR(60)    MAXMSGL(4194304)    MCATYPE(THREAD)    MCAUSER(' ')  MSGDATA(' ')  MSGEXIT(' ')  NPMSPEED(FAST)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    USERID(' ')  SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(QMGR)    STATCHL(QMGR)    CLWLPRTY(0)    CLWLRANK(0)    CLWLWGHT(50)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE LISTENER ('LISTENER.TCP')  TRPTYPE(TCP)    IPADDR(' ')  PORT(1418)    BACKLOG(0)    DESCR(' ')  CONTROL(QMGR)    REPLACE



INTERNAL1 (repos QM in cluster)
Code:
DEFINE QLOCAL ('INT1DLQ')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    CLWLUSEQ(QMGR)    SCOPE(QMGR)    GET(ENABLED)    MAXDEPTH(5000)    MAXMSGL(4194304)    SHARE    DEFSOPT(SHARED)    MSGDLVSQ(PRIORITY)    HARDENBO    USAGE(NORMAL)    NOTRIGGER    TRIGTYPE(FIRST)    TRIGDPTH(1)    TRIGMPRI(0)    TRIGDATA(' ')  PROCESS(' ')  INITQ(' ')  RETINTVL(999999999)    BOTHRESH(0)    BOQNAME(' ')  QDEPTHHI(80)    QDEPTHLO(20)    QDPMAXEV(ENABLED)    QDPHIEV(DISABLED)    QDPLOEV(DISABLED)    QSVCINT(999999999)    QSVCIEV(NONE)    DISTL(NO)    NPMCLASS(NORMAL)    STATQ(QMGR)    MONQ(QMGR)    ACCTQ(QMGR)    CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QLOCAL ('MY.HOME')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    CLWLUSEQ(QMGR)    SCOPE(QMGR)    GET(ENABLED)    MAXDEPTH(5000)    MAXMSGL(4194304)    SHARE    DEFSOPT(SHARED)    MSGDLVSQ(PRIORITY)    HARDENBO    USAGE(NORMAL)    NOTRIGGER    TRIGTYPE(FIRST)    TRIGDPTH(1)    TRIGMPRI(0)    TRIGDATA(' ')  PROCESS(' ')  INITQ(' ')  RETINTVL(999999999)    BOTHRESH(0)    BOQNAME(' ')  QDEPTHHI(80)    QDEPTHLO(20)    QDPMAXEV(ENABLED)    QDPHIEV(DISABLED)    QDPLOEV(DISABLED)    QSVCINT(999999999)    QSVCIEV(NONE)    DISTL(NO)    NPMCLASS(NORMAL)    STATQ(QMGR)    MONQ(QMGR)    ACCTQ(QMGR)    CLUSTER('MYCLUS')  CLUSNL(' ')  DEFBIND(NOTFIXED)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE CHANNEL ('TO_INTERNAL1') CHLTYPE(CLUSRCVR)  TRPTYPE(TCP)    BATCHINT(0)    BATCHHB(0)    BATCHSZ(50)    CLUSTER('MYCLUS')  CLUSNL(' ')  CONNAME('some.ip(1419)')  LOCLADDR(' ')  CONVERT(NO)    DESCR(' ')  DISCINT(6000)    HBINT(300)    LONGRTY(999999999)    LONGTMR(1200)    SHORTRTY(10)    SHORTTMR(60)    MAXMSGL(4194304)    MCATYPE(THREAD)    MCAUSER(' ')  MRDATA(' ')  MREXIT(' ')  MRRTY(10)    MRTMR(1000)    MSGDATA(' ')  MSGEXIT(' ')  NETPRTY(0)    NPMSPEED(FAST)    PUTAUT(DEF)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    SSLCAUTH(REQUIRED)    SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(QMGR)    STATCHL(QMGR)    CLWLPRTY(0)    CLWLRANK(0)    CLWLWGHT(50)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE CHANNEL ('TO_INTERNAL2') CHLTYPE(CLUSSDR)  TRPTYPE(TCP)    BATCHINT(0)    BATCHHB(0)    BATCHSZ(50)    CLUSTER('MYCLUS')  CLUSNL(' ')  CONNAME('some.ip(1420)')  LOCLADDR(' ')  CONVERT(NO)    DESCR(' ')  DISCINT(6000)    HBINT(300)    LONGRTY(999999999)    LONGTMR(1200)    SHORTRTY(10)    SHORTTMR(60)    MAXMSGL(4194304)    MCATYPE(THREAD)    MCAUSER(' ')  MSGDATA(' ')  MSGEXIT(' ')  NPMSPEED(FAST)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    USERID(' ')  SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(QMGR)    STATCHL(QMGR)    CLWLPRTY(0)    CLWLRANK(0)    CLWLWGHT(50)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE LISTENER ('LISTENER.TCP')  TRPTYPE(TCP)    IPADDR(' ')  PORT(1419)    BACKLOG(0)    DESCR(' ')  CONTROL(QMGR)    REPLACE



INTERNAL1 (repos QM in cluster)
Code:
DEFINE QLOCAL ('INT2DLQ')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    CLWLUSEQ(QMGR)    SCOPE(QMGR)    GET(ENABLED)    MAXDEPTH(5000)    MAXMSGL(4194304)    SHARE    DEFSOPT(SHARED)    MSGDLVSQ(PRIORITY)    HARDENBO    USAGE(NORMAL)    NOTRIGGER    TRIGTYPE(FIRST)    TRIGDPTH(1)    TRIGMPRI(0)    TRIGDATA(' ')  PROCESS(' ')  INITQ(' ')  RETINTVL(999999999)    BOTHRESH(0)    BOQNAME(' ')  QDEPTHHI(80)    QDEPTHLO(20)    QDPMAXEV(ENABLED)    QDPHIEV(DISABLED)    QDPLOEV(DISABLED)    QSVCINT(999999999)    QSVCIEV(NONE)    DISTL(NO)    NPMCLASS(NORMAL)    STATQ(QMGR)    MONQ(QMGR)    ACCTQ(QMGR)    CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QLOCAL ('MY.HOME')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    CLWLUSEQ(QMGR)    SCOPE(QMGR)    GET(ENABLED)    MAXDEPTH(5000)    MAXMSGL(4194304)    SHARE    DEFSOPT(SHARED)    MSGDLVSQ(PRIORITY)    HARDENBO    USAGE(NORMAL)    NOTRIGGER    TRIGTYPE(FIRST)    TRIGDPTH(1)    TRIGMPRI(0)    TRIGDATA(' ')  PROCESS(' ')  INITQ(' ')  RETINTVL(999999999)    BOTHRESH(0)    BOQNAME(' ')  QDEPTHHI(80)    QDEPTHLO(20)    QDPMAXEV(ENABLED)    QDPHIEV(DISABLED)    QDPLOEV(DISABLED)    QSVCINT(999999999)    QSVCIEV(NONE)    DISTL(NO)    NPMCLASS(NORMAL)    STATQ(QMGR)    MONQ(QMGR)    ACCTQ(QMGR)    CLUSTER('MYCLUS')  CLUSNL(' ')  DEFBIND(NOTFIXED)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE CHANNEL ('TO_INTERNAL1') CHLTYPE(CLUSSDR)  TRPTYPE(TCP)    BATCHINT(0)    BATCHHB(0)    BATCHSZ(50)    CLUSTER('MYCLUS')  CLUSNL(' ')  CONNAME('some.ip(1419)')  LOCLADDR(' ')  CONVERT(NO)    DESCR(' ')  DISCINT(6000)    HBINT(300)    LONGRTY(999999999)    LONGTMR(1200)    SHORTRTY(10)    SHORTTMR(60)    MAXMSGL(4194304)    MCATYPE(THREAD)    MCAUSER(' ')  MSGDATA(' ')  MSGEXIT(' ')  NPMSPEED(FAST)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    USERID(' ')  SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(QMGR)    STATCHL(QMGR)    CLWLPRTY(0)    CLWLRANK(0)    CLWLWGHT(50)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE CHANNEL ('TO_INTERNAL2') CHLTYPE(CLUSRCVR)  TRPTYPE(TCP)    BATCHINT(0)    BATCHHB(0)    BATCHSZ(50)    CLUSTER('MYCLUS')  CLUSNL(' ')  CONNAME('some.ip(1420)')  LOCLADDR(' ')  CONVERT(NO)    DESCR(' ')  DISCINT(6000)    HBINT(300)    LONGRTY(999999999)    LONGTMR(1200)    SHORTRTY(10)    SHORTTMR(60)    MAXMSGL(4194304)    MCATYPE(THREAD)    MCAUSER(' ')  MRDATA(' ')  MREXIT(' ')  MRRTY(10)    MRTMR(1000)    MSGDATA(' ')  MSGEXIT(' ')  NETPRTY(0)    NPMSPEED(FAST)    PUTAUT(DEF)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    SSLCAUTH(REQUIRED)    SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(QMGR)    STATCHL(QMGR)    CLWLPRTY(0)    CLWLRANK(0)    CLWLWGHT(50)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE LISTENER ('LISTENER.TCP')  TRPTYPE(TCP)    IPADDR(' ')  PORT(1420)    BACKLOG(0)    DESCR(' ')  CONTROL(QMGR)    REPLACE
Back to top
View user's profile Send private message
mattfarney
PostPosted: Wed Jan 11, 2012 5:31 pm    Post subject: Reply with quote

Disciple

Joined: 17 Jan 2006
Posts: 167
Location: Ohio

There are four attempts to write to a cluster object from the non-cluster QM. I used the MQExplorer to put a small test message on each of these QRemotes and then tracked down the results.

TEST1 was TEST_EXTERNAL. Received the expected 2085.
TEST2 was TEST_OUTSIDE. Traffic sent to INTERNAL1/INTERNAL2.
TEST3 was TEST_ALIAS. Received the expected 2082.
TEST4 was TEST_ANON. Failed at write with 2087 (not unexpected - just being thorough).

-mf
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Wed Jan 11, 2012 6:51 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

You have to be careful with how you set up your aliases in the cluster.
I'd go one step further and make them drive traffic...

So say you have 4 qmgrs in the cluster:
brk1, brk2, gwy1, gwy2

You have a qmgr external to the cluster xtrnl

Now you want to send something to the cluster and have it load balanced between the brokers:
set up: a clustered cluster alias residing on gwy1 and gwy2.

You want to send something from xtrnl to the cluster and have it load balanced on the broker
set up:
def qr(whatever) rname(clusqname on brk1 and brk2) rqmname(cluster alias on gwy1) xmitq (gwy1)
set up: channel to gwy1 with xmitq gwy1

So how do I get the return path?
on gwy1 and gwy2:
Set up channel to xtrnl with xmitq to.xtrnl
set up cluster qmgr alias:
def qr(xtrnl) rname('') rqmname(xtrnl) xmitq(to.xtrnl) cluster(mycluster).
set up on gwy1 and gwy2

xtrnl is available in your cluster(mycluster) but will force traffic through gwy1, gwy2 and route it to the xtrnl qmgr...

In order for this to work quite as fine in overlapping clusters you will need to consider that you might want to have cluster aliases only defined on qmgrs that participate only in one of the clusters... and anyway you may not want to have the same qname defined as clustered in both overlapping clusters...

Works like a charm to route through adjacent clusters and to external qmgrs, gets however quickly quite more complicated when routing in overlapping clusters... hence the need to not have the same qname in overlapping clusters. This can be resolved by having the same physical queue (non clustered) and a cluster specific clustered alias q defined on the qmgr the instance resides on.
ex qname(mytestq) exists both on cluster a and cluster b non clustered...
qalias (mytestq.a) cluster(a)
qalias (mytestq.b) cluster(b). Thus the clustered names are unique across both clusters.

What you are striving to avoid in overlapping clusters is that for instance queue1 exists in both clusters but processes different type of messages depending on the cluster. How do you avoid messages for queue1 in cluster a to end up on queue1 in cluster b when your clusters overlap?

Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
bruce2359
PostPosted: Wed Jan 11, 2012 9:30 pm    Post subject: Reply with quote

Poobah

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

mattfarney wrote:
To further this discussion, I created a quick test environment with actual definitions.

TESTMQ (QM outside cluster)
Code:
DEFINE QLOCAL ('EXTERNAL')  DESCR('WebSphere MQ Default Local Queue')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    CLWLUSEQ(LOCAL)    SCOPE(QMGR)    GET(ENABLED)    MAXDEPTH(5000)    MAXMSGL(4194304)    SHARE    DEFSOPT(SHARED)    MSGDLVSQ(PRIORITY)    HARDENBO    USAGE(XMITQ)    TRIGGER    TRIGTYPE(FIRST)    TRIGDPTH(1)    TRIGMPRI(0)    TRIGDATA(' ')  PROCESS(' ')  INITQ(' ')  RETINTVL(999999999)    BOTHRESH(0)    BOQNAME(' ')  QDEPTHHI(80)    QDEPTHLO(20)    QDPMAXEV(ENABLED)    QDPHIEV(DISABLED)    QDPLOEV(DISABLED)    QSVCINT(999999999)    QSVCIEV(NONE)    DISTL(YES)    NPMCLASS(NORMAL)    STATQ(QMGR)    MONQ(QMGR)    ACCTQ(QMGR)    CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QLOCAL ('TESTDLQ')  DESCR('WebSphere MQ Default Local Queue')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    CLWLUSEQ(LOCAL)    SCOPE(QMGR)    GET(ENABLED)    MAXDEPTH(5000)    MAXMSGL(4194304)    SHARE    DEFSOPT(SHARED)    MSGDLVSQ(PRIORITY)    HARDENBO    USAGE(NORMAL)    NOTRIGGER    TRIGTYPE(FIRST)    TRIGDPTH(1)    TRIGMPRI(0)    TRIGDATA(' ')  PROCESS(' ')  INITQ(' ')  RETINTVL(999999999)    BOTHRESH(0)    BOQNAME(' ')  QDEPTHHI(80)    QDEPTHLO(20)    QDPMAXEV(ENABLED)    QDPHIEV(DISABLED)    QDPLOEV(DISABLED)    QSVCINT(999999999)    QSVCIEV(NONE)    DISTL(NO)    NPMCLASS(NORMAL)    STATQ(QMGR)    MONQ(QMGR)    ACCTQ(QMGR)    CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QREMOTE ('TEST_ALIAS')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    SCOPE(QMGR)    XMITQ('EXTERNAL')  RNAME('THEIR.HOME')  RQMNAME('EXTERNAL')  CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QREMOTE ('TEST_ANON')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    SCOPE(QMGR)    XMITQ('EXTERNAL')  RNAME('MY.HOME')  RQMNAME(' ')  CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QREMOTE ('TEST_EXTERNAL')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    SCOPE(QMGR)    XMITQ('EXTERNAL')  RNAME('MY.HOME')  RQMNAME('EXTERNAL')  CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QREMOTE ('TEST_OUTSIDE')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    SCOPE(QMGR)    XMITQ('EXTERNAL')  RNAME('MY.HOME')  RQMNAME('OUTSIDE')  CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE CHANNEL ('TESTMQ/EXTERNAL') CHLTYPE(SDR)  TRPTYPE(TCP)    BATCHINT(0)    BATCHHB(0)    BATCHSZ(50)    CONNAME('some.ip(1418)')  LOCLADDR(' ')  CONVERT(NO)    DESCR(' ')  DISCINT(6000)    HBINT(300)    LONGRTY(999999999)    LONGTMR(1200)    SHORTRTY(10)    SHORTTMR(60)    MAXMSGL(4194304)    MCATYPE(PROCESS)    MCAUSER(' ')  MSGDATA(' ')  MSGEXIT(' ')  NPMSPEED(FAST)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    USERID(' ')  XMITQ('EXTERNAL')  SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(OFF)    STATCHL(OFF)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE LISTENER ('LISTENER')  TRPTYPE(TCP)    IPADDR(' ')  PORT(1417)    BACKLOG(0)    DESCR('Migrated from Listener')  CONTROL(QMGR)    REPLACE


EXTERNAL (non-repos QM in CLUSTER)
Code:
DEFINE QLOCAL ('EXTDLQ')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    CLWLUSEQ(QMGR)    SCOPE(QMGR)    GET(ENABLED)    MAXDEPTH(5000)    MAXMSGL(4194304)    SHARE    DEFSOPT(SHARED)    MSGDLVSQ(PRIORITY)    HARDENBO    USAGE(NORMAL)    NOTRIGGER    TRIGTYPE(FIRST)    TRIGDPTH(1)    TRIGMPRI(0)    TRIGDATA(' ')  PROCESS(' ')  INITQ(' ')  RETINTVL(999999999)    BOTHRESH(0)    BOQNAME(' ')  QDEPTHHI(80)    QDEPTHLO(20)    QDPMAXEV(ENABLED)    QDPHIEV(DISABLED)    QDPLOEV(DISABLED)    QSVCINT(999999999)    QSVCIEV(NONE)    DISTL(NO)    NPMCLASS(NORMAL)    STATQ(QMGR)    MONQ(QMGR)    ACCTQ(QMGR)    CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QREMOTE ('OUTSIDE')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    SCOPE(QMGR)    XMITQ(' ')  RNAME(' ')  RQMNAME(' ')  CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QALIAS ('THEIR.HOME')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    SCOPE(QMGR)    GET(ENABLED)    TARGQ(' ')  CLUSTER(' ')  CLUSNL(' ')  DEFBIND(NOTFIXED)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE CHANNEL ('TESTMQ/EXTERNAL') CHLTYPE(RCVR)  TRPTYPE(TCP)    BATCHSZ(50)    DESCR(' ')  HBINT(300)    MAXMSGL(4194304)    MCAUSER(' ')  MRDATA(' ')  MREXIT(' ')  MRRTY(10)    MRTMR(1000)    MSGDATA(' ')  MSGEXIT(' ')  NPMSPEED(FAST)    PUTAUT(DEF)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    SSLCAUTH(REQUIRED)    SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(QMGR)    STATCHL(QMGR)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE CHANNEL ('TO_EXTERNAL') CHLTYPE(CLUSRCVR)  TRPTYPE(TCP)    BATCHINT(0)    BATCHHB(0)    BATCHSZ(50)    CLUSTER('MYCLUS')  CLUSNL(' ')  CONNAME('some.ip(1418)')  LOCLADDR(' ')  CONVERT(NO)    DESCR(' ')  DISCINT(6000)    HBINT(300)    LONGRTY(999999999)    LONGTMR(1200)    SHORTRTY(10)    SHORTTMR(60)    MAXMSGL(4194304)    MCATYPE(THREAD)    MCAUSER(' ')  MRDATA(' ')  MREXIT(' ')  MRRTY(10)    MRTMR(1000)    MSGDATA(' ')  MSGEXIT(' ')  NETPRTY(0)    NPMSPEED(FAST)    PUTAUT(DEF)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    SSLCAUTH(REQUIRED)    SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(QMGR)    STATCHL(QMGR)    CLWLPRTY(0)    CLWLRANK(0)    CLWLWGHT(50)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE CHANNEL ('TO_INTERNAL1') CHLTYPE(CLUSSDR)  TRPTYPE(TCP)    BATCHINT(0)    BATCHHB(0)    BATCHSZ(50)    CLUSTER('MYCLUS')  CLUSNL(' ')  CONNAME('some.ip(1419)')  LOCLADDR(' ')  CONVERT(NO)    DESCR(' ')  DISCINT(6000)    HBINT(300)    LONGRTY(999999999)    LONGTMR(1200)    SHORTRTY(10)    SHORTTMR(60)    MAXMSGL(4194304)    MCATYPE(THREAD)    MCAUSER(' ')  MSGDATA(' ')  MSGEXIT(' ')  NPMSPEED(FAST)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    USERID(' ')  SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(QMGR)    STATCHL(QMGR)    CLWLPRTY(0)    CLWLRANK(0)    CLWLWGHT(50)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE LISTENER ('LISTENER.TCP')  TRPTYPE(TCP)    IPADDR(' ')  PORT(1418)    BACKLOG(0)    DESCR(' ')  CONTROL(QMGR)    REPLACE



INTERNAL1 (repos QM in cluster)
Code:
DEFINE QLOCAL ('INT1DLQ')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    CLWLUSEQ(QMGR)    SCOPE(QMGR)    GET(ENABLED)    MAXDEPTH(5000)    MAXMSGL(4194304)    SHARE    DEFSOPT(SHARED)    MSGDLVSQ(PRIORITY)    HARDENBO    USAGE(NORMAL)    NOTRIGGER    TRIGTYPE(FIRST)    TRIGDPTH(1)    TRIGMPRI(0)    TRIGDATA(' ')  PROCESS(' ')  INITQ(' ')  RETINTVL(999999999)    BOTHRESH(0)    BOQNAME(' ')  QDEPTHHI(80)    QDEPTHLO(20)    QDPMAXEV(ENABLED)    QDPHIEV(DISABLED)    QDPLOEV(DISABLED)    QSVCINT(999999999)    QSVCIEV(NONE)    DISTL(NO)    NPMCLASS(NORMAL)    STATQ(QMGR)    MONQ(QMGR)    ACCTQ(QMGR)    CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QLOCAL ('MY.HOME')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    CLWLUSEQ(QMGR)    SCOPE(QMGR)    GET(ENABLED)    MAXDEPTH(5000)    MAXMSGL(4194304)    SHARE    DEFSOPT(SHARED)    MSGDLVSQ(PRIORITY)    HARDENBO    USAGE(NORMAL)    NOTRIGGER    TRIGTYPE(FIRST)    TRIGDPTH(1)    TRIGMPRI(0)    TRIGDATA(' ')  PROCESS(' ')  INITQ(' ')  RETINTVL(999999999)    BOTHRESH(0)    BOQNAME(' ')  QDEPTHHI(80)    QDEPTHLO(20)    QDPMAXEV(ENABLED)    QDPHIEV(DISABLED)    QDPLOEV(DISABLED)    QSVCINT(999999999)    QSVCIEV(NONE)    DISTL(NO)    NPMCLASS(NORMAL)    STATQ(QMGR)    MONQ(QMGR)    ACCTQ(QMGR)    CLUSTER('MYCLUS')  CLUSNL(' ')  DEFBIND(NOTFIXED)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE CHANNEL ('TO_INTERNAL1') CHLTYPE(CLUSRCVR)  TRPTYPE(TCP)    BATCHINT(0)    BATCHHB(0)    BATCHSZ(50)    CLUSTER('MYCLUS')  CLUSNL(' ')  CONNAME('some.ip(1419)')  LOCLADDR(' ')  CONVERT(NO)    DESCR(' ')  DISCINT(6000)    HBINT(300)    LONGRTY(999999999)    LONGTMR(1200)    SHORTRTY(10)    SHORTTMR(60)    MAXMSGL(4194304)    MCATYPE(THREAD)    MCAUSER(' ')  MRDATA(' ')  MREXIT(' ')  MRRTY(10)    MRTMR(1000)    MSGDATA(' ')  MSGEXIT(' ')  NETPRTY(0)    NPMSPEED(FAST)    PUTAUT(DEF)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    SSLCAUTH(REQUIRED)    SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(QMGR)    STATCHL(QMGR)    CLWLPRTY(0)    CLWLRANK(0)    CLWLWGHT(50)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE CHANNEL ('TO_INTERNAL2') CHLTYPE(CLUSSDR)  TRPTYPE(TCP)    BATCHINT(0)    BATCHHB(0)    BATCHSZ(50)    CLUSTER('MYCLUS')  CLUSNL(' ')  CONNAME('some.ip(1420)')  LOCLADDR(' ')  CONVERT(NO)    DESCR(' ')  DISCINT(6000)    HBINT(300)    LONGRTY(999999999)    LONGTMR(1200)    SHORTRTY(10)    SHORTTMR(60)    MAXMSGL(4194304)    MCATYPE(THREAD)    MCAUSER(' ')  MSGDATA(' ')  MSGEXIT(' ')  NPMSPEED(FAST)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    USERID(' ')  SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(QMGR)    STATCHL(QMGR)    CLWLPRTY(0)    CLWLRANK(0)    CLWLWGHT(50)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE LISTENER ('LISTENER.TCP')  TRPTYPE(TCP)    IPADDR(' ')  PORT(1419)    BACKLOG(0)    DESCR(' ')  CONTROL(QMGR)    REPLACE



INTERNAL1 (repos QM in cluster)
Code:
DEFINE QLOCAL ('INT2DLQ')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    CLWLUSEQ(QMGR)    SCOPE(QMGR)    GET(ENABLED)    MAXDEPTH(5000)    MAXMSGL(4194304)    SHARE    DEFSOPT(SHARED)    MSGDLVSQ(PRIORITY)    HARDENBO    USAGE(NORMAL)    NOTRIGGER    TRIGTYPE(FIRST)    TRIGDPTH(1)    TRIGMPRI(0)    TRIGDATA(' ')  PROCESS(' ')  INITQ(' ')  RETINTVL(999999999)    BOTHRESH(0)    BOQNAME(' ')  QDEPTHHI(80)    QDEPTHLO(20)    QDPMAXEV(ENABLED)    QDPHIEV(DISABLED)    QDPLOEV(DISABLED)    QSVCINT(999999999)    QSVCIEV(NONE)    DISTL(NO)    NPMCLASS(NORMAL)    STATQ(QMGR)    MONQ(QMGR)    ACCTQ(QMGR)    CLUSTER(' ')  CLUSNL(' ')  DEFBIND(OPEN)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE QLOCAL ('MY.HOME')  DESCR(' ')  PUT(ENABLED)    DEFPRTY(0)    DEFPSIST(NO)    CLWLUSEQ(QMGR)    SCOPE(QMGR)    GET(ENABLED)    MAXDEPTH(5000)    MAXMSGL(4194304)    SHARE    DEFSOPT(SHARED)    MSGDLVSQ(PRIORITY)    HARDENBO    USAGE(NORMAL)    NOTRIGGER    TRIGTYPE(FIRST)    TRIGDPTH(1)    TRIGMPRI(0)    TRIGDATA(' ')  PROCESS(' ')  INITQ(' ')  RETINTVL(999999999)    BOTHRESH(0)    BOQNAME(' ')  QDEPTHHI(80)    QDEPTHLO(20)    QDPMAXEV(ENABLED)    QDPHIEV(DISABLED)    QDPLOEV(DISABLED)    QSVCINT(999999999)    QSVCIEV(NONE)    DISTL(NO)    NPMCLASS(NORMAL)    STATQ(QMGR)    MONQ(QMGR)    ACCTQ(QMGR)    CLUSTER('MYCLUS')  CLUSNL(' ')  DEFBIND(NOTFIXED)    CLWLRANK(0)    CLWLPRTY(0)    REPLACE

DEFINE CHANNEL ('TO_INTERNAL1') CHLTYPE(CLUSSDR)  TRPTYPE(TCP)    BATCHINT(0)    BATCHHB(0)    BATCHSZ(50)    CLUSTER('MYCLUS')  CLUSNL(' ')  CONNAME('some.ip(1419)')  LOCLADDR(' ')  CONVERT(NO)    DESCR(' ')  DISCINT(6000)    HBINT(300)    LONGRTY(999999999)    LONGTMR(1200)    SHORTRTY(10)    SHORTTMR(60)    MAXMSGL(4194304)    MCATYPE(THREAD)    MCAUSER(' ')  MSGDATA(' ')  MSGEXIT(' ')  NPMSPEED(FAST)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    USERID(' ')  SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(QMGR)    STATCHL(QMGR)    CLWLPRTY(0)    CLWLRANK(0)    CLWLWGHT(50)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE CHANNEL ('TO_INTERNAL2') CHLTYPE(CLUSRCVR)  TRPTYPE(TCP)    BATCHINT(0)    BATCHHB(0)    BATCHSZ(50)    CLUSTER('MYCLUS')  CLUSNL(' ')  CONNAME('some.ip(1420)')  LOCLADDR(' ')  CONVERT(NO)    DESCR(' ')  DISCINT(6000)    HBINT(300)    LONGRTY(999999999)    LONGTMR(1200)    SHORTRTY(10)    SHORTTMR(60)    MAXMSGL(4194304)    MCATYPE(THREAD)    MCAUSER(' ')  MRDATA(' ')  MREXIT(' ')  MRRTY(10)    MRTMR(1000)    MSGDATA(' ')  MSGEXIT(' ')  NETPRTY(0)    NPMSPEED(FAST)    PUTAUT(DEF)    RCVDATA(' ')  RCVEXIT(' ')  SCYDATA(' ')  SCYEXIT(' ')  SENDDATA(' ')  SENDEXIT(' ')  SEQWRAP(999999999)    SSLCAUTH(REQUIRED)    SSLCIPH(' ')  SSLPEER(' ')   KAINT(AUTO)    MONCHL(QMGR)    STATCHL(QMGR)    CLWLPRTY(0)    CLWLRANK(0)    CLWLWGHT(50)    COMPMSG(NONE)    COMPHDR(NONE)    REPLACE

DEFINE LISTENER ('LISTENER.TCP')  TRPTYPE(TCP)    IPADDR(' ')  PORT(1420)    BACKLOG(0)    DESCR(' ')  CONTROL(QMGR)    REPLACE

Were you trying to be deliberately difficult? If so, it worked.

I asked for your definitions with relevant attributes and values, so we wouldn't have to deal with MRTMR(1000) MAXMSGL(4194304) and irrelevant stuff like that.
_________________
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
mattfarney
PostPosted: Thu Jan 12, 2012 9:27 am    Post subject: Reply with quote

Disciple

Joined: 17 Jan 2006
Posts: 167
Location: Ohio

Code:
DEFINE QLOCAL ('EXTERNAL') CLWLUSEQ(LOCAL) USAGE(XMITQ) CLUSTER(' ') CLUSNL(' ') DEFBIND(OPEN)
DEFINE QLOCAL ('TESTDLQ') CLWLUSEQ(LOCAL) USAGE(NORMAL) CLUSTER(' ') CLUSNL(' ') DEFBIND(OPEN)
DEFINE QREMOTE ('TEST_ALIAS') XMITQ('EXTERNAL') RNAME('THEIR.HOME') RQMNAME('EXTERNAL') CLUSTER(' ') CLUSNL(' ') DEFBIND(OPEN)
DEFINE QREMOTE ('TEST_ANON') XMITQ('EXTERNAL') RNAME('MY.HOME') RQMNAME(' ') CLUSTER(' ') CLUSNL(' ') DEFBIND(OPEN)
DEFINE QREMOTE ('TEST_EXTERNAL') XMITQ('EXTERNAL') RNAME('MY.HOME') RQMNAME('EXTERNAL') CLUSTER(' ') CLUSNL(' ') DEFBIND(OPEN)
DEFINE QREMOTE ('TEST_OUTSIDE') XMITQ('EXTERNAL') RNAME('MY.HOME') RQMNAME('OUTSIDE') CLUSTER(' ') CLUSNL(' ') DEFBIND(OPEN)
DEFINE CHANNEL ('TESTMQ/EXTERNAL') CHLTYPE(SDR) XMITQ('EXTERNAL')

DEFINE QLOCAL ('EXTDLQ') CLWLUSEQ(QMGR) USAGE(NORMAL) CLUSTER(' ') CLUSNL(' ') DEFBIND(OPEN)
DEFINE QREMOTE ('OUTSIDE') XMITQ(' ') RNAME(' ') RQMNAME(' ') CLUSTER(' ') CLUSNL(' ') DEFBIND(OPEN)
DEFINE QALIAS ('THEIR.HOME') TARGQ(' ') CLUSTER(' ') CLUSNL(' ') DEFBIND(NOTFIXED)
DEFINE CHANNEL ('TESTMQ/EXTERNAL') CHLTYPE(RCVR)
DEFINE CHANNEL ('TO_EXTERNAL') CHLTYPE(CLUSRCVR) CLUSTER('MYCLUS')
DEFINE CHANNEL ('TO_INTERNAL1') CHLTYPE(CLUSSDR) CLUSTER('MYCLUS')

DEFINE QLOCAL ('INT1DLQ') CLWLUSEQ(QMGR) USAGE(NORMAL) CLUSTER(' ') CLUSNL(' ') DEFBIND(OPEN)
DEFINE QLOCAL ('MY.HOME') CLWLUSEQ(QMGR) USAGE(NORMAL) CLUSTER('MYCLUS') CLUSNL(' ') DEFBIND(NOTFIXED)
DEFINE CHANNEL ('TO_INTERNAL1') CHLTYPE(CLUSRCVR) CLUSTER('MYCLUS')
DEFINE CHANNEL ('TO_INTERNAL2') CHLTYPE(CLUSSDR) CLUSTER('MYCLUS')

DEFINE QLOCAL ('INT2DLQ') CLWLUSEQ(QMGR) USAGE(NORMAL) CLUSTER(' ') CLUSNL(' ') DEFBIND(OPEN)
DEFINE QLOCAL ('MY.HOME') CLWLUSEQ(QMGR) USAGE(NORMAL) CLUSTER('MYCLUS') CLUSNL(' ') DEFBIND(NOTFIXED)
DEFINE CHANNEL ('TO_INTERNAL1') CHLTYPE(CLUSSDR) CLUSTER('MYCLUS')
DEFINE CHANNEL ('TO_INTERNAL2') CHLTYPE(CLUSRCVR) CLUSTER('MYCLUS')


-mf
Back to top
View user's profile Send private message
mattfarney
PostPosted: Fri Jan 13, 2012 12:33 pm    Post subject: Reply with quote

Disciple

Joined: 17 Jan 2006
Posts: 167
Location: Ohio

Noticed a problem with one of those definitions.

Changed THEIR.HOME
to
Code:
DEFINE QALIAS ('THEIR.HOME')  DESCR(' ')  TARGQ('MY.HOME')  CLUSTER(' ')  CLUSNL(' ')  DEFBIND(NOTFIXED) REPLACE


I tried the test again and got the same result (2082).
If I write directly to the alias (using MQ explorer) it works as expected (balancing between MY.HOME on int1/2).
If I repoint THEIR.HOME to a local queue on EXTERNAL, it works regardless of source.

So here's the crux of my question:
If I am writing directly to a QM, an alias will resolve whether the baseQ is local or a cluster queue on another machine.
If I am writing from another QM to a QM over a non-cluster channel, the alias will only resolve if the baseQ is local.

Why is the behavior this way? Why should the source of the action matter? Shouldn't the name resolution be the same in both cases?

-mf
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Jan 13, 2012 12:43 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

mattfarney wrote:
Noticed a problem with one of those definitions.

Changed THEIR.HOME
to
Code:
DEFINE QALIAS ('THEIR.HOME')  DESCR(' ')  TARGQ('MY.HOME')  CLUSTER(' ')  CLUSNL(' ')  DEFBIND(NOTFIXED) REPLACE


I tried the test again and got the same result (2082).
If I write directly to the alias (using MQ explorer) it works as expected (balancing between MY.HOME on int1/2).
If I repoint THEIR.HOME to a local queue on EXTERNAL, it works regardless of source.

So here's the crux of my question:
If I am writing directly to a QM, an alias will resolve whether the baseQ is local or a cluster queue on another machine.
If I am writing from another QM to a QM over a non-cluster channel, the alias will only resolve if the baseQ is local.

Why is the behavior this way? Why should the source of the action matter? Shouldn't the name resolution be the same in both cases?

-mf


Well if you read carefully the cluster manual, they tell you, you need to set up a "cluster alias" when sending messages from a non cluster qmgr.
I believe the subtlety here is that when sending from a non cluster qmr into the gateway the assumption is that the target is local to the gwy qmgr and that is not the case with the alias queue.

So to resolve correctly in the cluster you need a cluster alias ie remote queue that tells the gwy qmgr that it needs to act as if there is a next hop.

Queue name resolution may be different if done inside the qmgr with no expectation of a next hop, compared to next hop resolution type...

Anyways I am sure somebody from Hursley will be able to give us a better insight into these internals...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
mqjeff
PostPosted: Sat Jan 14, 2012 1:14 pm    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

It's naught to do with internals.

QALIASes only override the ObjectQname on an MQOpen, they don't affect the ObjectQmgrName.

Cause, you know, they only have another queue name in them, not a qmgr name as well... if they had a qmgr name, they'd be a qremote, not a qalias.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Sun Jan 15, 2012 8:27 am    Post subject: Reply with quote

Poobah

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

A reference to queue-manager alias which might help http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=%2Fcom.ibm.mq.csqzah.doc%2Fqc10790_.htm
_________________
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
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » Clustering » Clusters and aliases discussion
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.