Author |
Message
|
JAdams |
Posted: Thu May 29, 2008 9:37 am Post subject: CLWLUSEQ(ANY) attribute |
|
|
 Apprentice
Joined: 11 Jul 2002 Posts: 47 Location: Lakeland, FL
|
Hi,
I have a weird clustering issue that has me baffled. I have 2 queue managers (QMGRA & QMGRB) that are part of a cluster. I have a queue (TEST) defined as a cluster queue on both queue managers. I have CLWLUSEQ set to ANY on both queues. When I run amsputc doing a put to TEST on QMGRA all of the messages are sent to the TEST queue on QMGRB?? The same thing happens when I do a put to the TEST queue on QMGRB....they all go to QMGRA.
Now....if I do a put to the TEST queue from a third qmgr (QMGRC) with no local version of the queue then the messages are split between the two queues on QMGRA and QMGRB as I would expect them to be.
My understanding of CLWLUSEQ(ANY) is that even if I put to a queue manager and there is a local version of the queue as well as a remote version that messages will still be workload balanced across both queues.
So my question is why would messages being put to the TEST queue always go to the remote version of the queue instead of being balanced across the two version of the queue?
I do not have any of the Rank or Priority attributes configured.
These are both Windows queue managers running version 6.0.2.2 _________________ Jason Adams
IBM Certified Specialist MQSeries |
|
Back to top |
|
 |
PeterPotkay |
Posted: Thu May 29, 2008 1:02 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
What BIND option is being used? By dumb luck you may be binding to the other queue on the first put, and that's where the rest of them are going for the duration of that MQOPEN. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
crossland |
Posted: Fri May 30, 2008 7:49 am Post subject: |
|
|
Master
Joined: 26 Jun 2001 Posts: 248
|
Looking at the source, it appears that amqsput uses the default open options which would be "bind as q def".
Regards,
Tim
http://www.inspirotechnic.com |
|
Back to top |
|
 |
HubertKleinmanns |
Posted: Sun Jun 01, 2008 11:13 pm Post subject: |
|
|
 Shaman
Joined: 24 Feb 2004 Posts: 732 Location: Germany
|
crossland wrote: |
Looking at the source, it appears that amqsput uses the default open options which would be "bind as q def".
Regards,
Tim
http://www.inspirotechnic.com |
That's right, so it depends on the definitions of the queues (attribute DEFBIND - should be NOTFIXED) how messages are "load-balanced". _________________ Regards
Hubert |
|
Back to top |
|
 |
HubertKleinmanns |
Posted: Sun Jun 01, 2008 11:15 pm Post subject: |
|
|
 Shaman
Joined: 24 Feb 2004 Posts: 732 Location: Germany
|
HubertKleinmanns wrote: |
crossland wrote: |
Looking at the source, it appears that amqsput uses the default open options which would be "bind as q def".
Regards,
Tim
http://www.inspirotechnic.com |
That's right, so it depends on the definitions of the queues (attribute DEFBIND - should be NOTFIXED) how messages are "load-balanced". |
I forgot to mention - default for queues is "OPEN" instead of "NOTFIXED". _________________ Regards
Hubert |
|
Back to top |
|
 |
JAdams |
Posted: Mon Jun 02, 2008 4:40 am Post subject: |
|
|
 Apprentice
Joined: 11 Jul 2002 Posts: 47 Location: Lakeland, FL
|
The queue is defined as "Not Fixed". _________________ Jason Adams
IBM Certified Specialist MQSeries |
|
Back to top |
|
 |
HubertKleinmanns |
Posted: Mon Jun 02, 2008 6:11 am Post subject: |
|
|
 Shaman
Joined: 24 Feb 2004 Posts: 732 Location: Germany
|
JAdams,
I tested it on my Linux-PC and it worked as I (and you) expected. I created two queues with CLWLUSEQ(ANY), DEFPSIST(YES), DEFBIND(NOTFIXED).
Please send your Q definitions for both queues. You may also compare the Q definitions with the MQ Explorer. They should have the same attributes (except of creation and alteration date and time of course). _________________ Regards
Hubert |
|
Back to top |
|
 |
JAdams |
Posted: Mon Jun 02, 2008 7:07 am Post subject: |
|
|
 Apprentice
Joined: 11 Jul 2002 Posts: 47 Location: Lakeland, FL
|
Hubert,
Here are the queue defs...
QMGRA
display qlocal(LQ.TEST) all
1 : display qlocal(LQ.TEST) all
AMQ8409: Display Queue details.
QUEUE(LQ.TEST) TYPE(QLOCAL)
ACCTQ(QMGR) ALTDATE(2008-03-10)
ALTTIME(10.12.41) BOQNAME( )
BOTHRESH(0) CLUSNL( )
CLUSTER(MQ.PERFORMANCE.CLUSTER) CLWLPRTY(0)
CLWLRANK(0) CLWLUSEQ(ANY)
CRDATE(2008-03-10) CRTIME(10.12.41)
CURDEPTH(0) DEFBIND(NOTFIXED)
DEFPRTY(0) DEFPSIST(YES)
DEFSOPT(SHARED) DEFTYPE(PREDEFINED)
DESCR( ) DISTL(NO)
GET(ENABLED) HARDENBO
INITQ( ) IPPROCS(0)
MAXDEPTH(5000) MAXMSGL(4194304)
MONQ(QMGR) MSGDLVSQ(PRIORITY)
NOTRIGGER NPMCLASS(NORMAL)
OPPROCS(0) PROCESS( )
PUT(ENABLED) QDEPTHHI(80)
QDEPTHLO(20) QDPHIEV(DISABLED)
QDPLOEV(DISABLED) QDPMAXEV(ENABLED)
QSVCIEV(NONE) QSVCINT(999999999)
RETINTVL(999999999) SCOPE(QMGR)
SHARE STATQ(QMGR)
TRIGDATA( ) TRIGDPTH(1)
TRIGMPRI(0) TRIGTYPE(FIRST)
USAGE(NORMAL)
QMGRB
DISPLAY QLOCAL(LQ.TEST) ALL
1 : DISPLAY QLOCAL(LQ.TEST) ALL
AMQ8409: Display Queue details.
QUEUE(LQ.TEST) TYPE(QLOCAL)
ACCTQ(QMGR) ALTDATE(2008-03-10)
ALTTIME(10.13.36) BOQNAME( )
BOTHRESH(0) CLUSNL( )
CLUSTER(MQ.PERFORMANCE.CLUSTER) CLWLPRTY(0)
CLWLRANK(0) CLWLUSEQ(ANY)
CRDATE(2008-03-10) CRTIME(10.13.36)
CURDEPTH(0) DEFBIND(NOTFIXED)
DEFPRTY(0) DEFPSIST(YES)
DEFSOPT(SHARED) DEFTYPE(PREDEFINED)
DESCR( ) DISTL(NO)
GET(ENABLED) HARDENBO
INITQ( ) IPPROCS(0)
MAXDEPTH(5000) MAXMSGL(4194304)
MONQ(QMGR) MSGDLVSQ(PRIORITY)
NOTRIGGER NPMCLASS(NORMAL)
OPPROCS(0) PROCESS( )
PUT(ENABLED) QDEPTHHI(80)
QDEPTHLO(20) QDPHIEV(DISABLED)
QDPLOEV(DISABLED) QDPMAXEV(ENABLED)
QSVCIEV(NONE) QSVCINT(999999999)
RETINTVL(999999999) SCOPE(QMGR)
SHARE STATQ(QMGR)
TRIGDATA( ) TRIGDPTH(1)
TRIGMPRI(0) TRIGTYPE(FIRST)
USAGE(NORMAL)
The queue defs are exactly the same. _________________ Jason Adams
IBM Certified Specialist MQSeries |
|
Back to top |
|
 |
HubertKleinmanns |
Posted: Mon Jun 02, 2008 7:26 am Post subject: |
|
|
 Shaman
Joined: 24 Feb 2004 Posts: 732 Location: Germany
|
Jason,
your definitions seem to be ok. I would perform the folowing steps:
- "REFRESH CLUSTER(MQ.PERFORMANCE.CLUSTER)" on QMGRA
- Wait some minutes (five or ten)
- "REFRESH CLUSTER(MQ.PERFORMANCE.CLUSTER)" on QMGRB
- Wait some minutes
- Test again
I found, that sometimes cluster QMgrs "forget" some information of the cluster.
If this does not work, check your channel definitions - the cluster receiver definitions should be the same for QMGRA and QMGRB (but I guess, these channels are ok, because the test from a third QMgr works fine, as you described).
If it still does not work, try another fix pack (6.0.2.4 is available since last friday). and try again.
Otherwise raise a PMR at IBM.
Would you please tell us the solution - if you got one? _________________ Regards
Hubert |
|
Back to top |
|
 |
PeterPotkay |
Posted: Mon Jun 02, 2008 7:35 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Yes, please do post what the eventual fix is. Your defs seem correct but your test case results are weird, based on the info provided.
Regarding the REFRESH, when I suspect things are wrong and wonder if changes are getting propagated, I try this first. Change the queue's Description field. Just add a period or something. This is an attribute that is shared among the cluster. If you change the q in this non obtrusive way and you see the change on the FRs and on the PRS that have an interest in this q, you know your cluster is properly aware of this q. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
HubertKleinmanns |
Posted: Mon Jun 02, 2008 7:43 am Post subject: |
|
|
 Shaman
Joined: 24 Feb 2004 Posts: 732 Location: Germany
|
Jason,
you could also try the tool amqrfdm. It undocumented and not very easy to use, but it looks "into" the cluster.
- Switch the details level on ("+" then ">" - "Return" to leave the submenu).
- List the Q attributes with the option "q".
This is, what the QMgr "really" sees in the cluster.
You could post the output to this list. _________________ Regards
Hubert |
|
Back to top |
|
 |
JAdams |
Posted: Mon Jun 02, 2008 9:49 am Post subject: |
|
|
 Apprentice
Joined: 11 Jul 2002 Posts: 47 Location: Lakeland, FL
|
I did the refresh as well as updating the desc. field to no avail. I am still experiencing the same behavior.
I also ran the amqrfdm utility and compared the objects. They are still identical with the exception of the desc. field. I purposely did one in uppercase and the other in lower case. Here is the output if you are interested.
QLOCAL(LQ.TEST ) 2 Live Seq(1212427519)
@18ADC Clusters @63714
QDesc(testq )
UUID(TMQPFA01B_2008-03-05_13.12.57 )
DefBind(1) DefPersistence(1) DefPriority(0) InhibitPut(0)
CLWLQueuePriority(0) CLWLQueueRank(0)
QFlags(2: Refresh )
Flags(0) MsgId(414D5120544D5150464130314120202022923548202F395A)
Prev(19B24 ) Next(63A40 ) Ascii(63B94 ) Qmgr(95F00 )
Cluster(MQ.PERFORMANCE.CLUSTER ) Live Seq(1212427519)
@63714 Next(0 )
Exp(7/2/2008 5:28:56 PM) Upd(6/2/2008 5:23:36 PM)
QFlags(2: Refresh )
QLOCAL(LQ.TEST ) 2 Live Seq(1212427416)
@63BC0 Clusters @93300
QDesc(TESTQ )
UUID(TMQPFA01A_2008-03-05_13.10.47 )
DefBind(1) DefPersistence(1) DefPriority(0) InhibitPut(0)
CLWLQueuePriority(0) CLWLQueueRank(0)
QFlags(43: Local Refresh USEQ-Any )
Flags(1) MsgId(414D5120544D5150464130314120202022923548202F3959)
Prev(933EC ) Next(18AB0 ) Ascii(63A40 ) Qmgr(95578 )
Cluster(MQ.PERFORMANCE.CLUSTER ) Live Seq(1212427416)
@93300 Next(0 )
Exp(7/2/2008 5:28:20 PM) Upd(3/10/2008 3:12:41 PM)
QFlags(43: Local Refresh USEQ-Any )
Looks like I may need to open a PMR....
...As I am typing this I do notice that the Upd date time stamp was not modified when I update the desc. field. The first queue does have today's date in the Upd date time stamp...?? I just refreshed the cluster again and it did not change anything....Arrg! _________________ Jason Adams
IBM Certified Specialist MQSeries |
|
Back to top |
|
 |
JAdams |
Posted: Mon Jun 02, 2008 9:52 am Post subject: |
|
|
 Apprentice
Joined: 11 Jul 2002 Posts: 47 Location: Lakeland, FL
|
Oh...BTW Yes, I will post the fix once I discover what it is! _________________ Jason Adams
IBM Certified Specialist MQSeries |
|
Back to top |
|
 |
Nigelg |
Posted: Mon Jun 02, 2008 11:50 am Post subject: |
|
|
Grand Master
Joined: 02 Aug 2004 Posts: 1046
|
That the descriptions are not updated in the amqrfdm output suggests that the qmgrs are not communicating properly, or that the repos mgr process is not running.
Instead of DIS QL on each qmgr, try DIS QC(LQ.TEST) ALL on both qmgrs, to see whether the cluster view of the queue is the same on both.
Also, check to see whether there is an amqrrmfa process for each qmgr, and that there is a CLUSSDR and CLUSRCVR running on each to and from the full repos qmgrs in the cluster. _________________ MQSeries.net helps those who help themselves.. |
|
Back to top |
|
 |
crossland |
Posted: Mon Jun 02, 2008 11:58 am Post subject: |
|
|
Master
Joined: 26 Jun 2001 Posts: 248
|
I had a similar problem which went away after the server was rebooted; have you tried restarting the queue managers?
Tim
http://www.inspirotechnic.com |
|
Back to top |
|
 |
|