Author |
Message
|
fjb_saper |
Posted: Mon Jan 21, 2008 6:02 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20757 Location: LI,NY
|
Do a dis qc(qname) clusqmgr
This will show the qmgr(s) hosting the queue. This is where you need to change the definition.
Did you define the cluster alias on the gateways?
Did you define the request qmgr aliases on the gateways with the cluster attribute?
These last 2 steps are essential to your routing...
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
MQWays |
Posted: Mon Jan 21, 2008 10:37 pm Post subject: |
|
|
Acolyte
Joined: 20 Jan 2008 Posts: 61
|
All the queue managers in the cluster show NOTFIXED against the queue attributes.
- The cluster alias on the gateway
DEFINE QL(ANY.CLUSTER) RNAME('') RQMNAE('')
- The Request Qmgr alias on the gaeway with cluster attribute
I didn't get this. Please explain.
------
My definitions are as follows
- Machine 1 (Outside Cluster)
DEFINE QR(QUEUE) RNAME(QUEUE) RQMNAME(ANY.CLUSTER) XMITQ(GATEWAY QMGR ON MACHINE 2)
- Machine 2 ( Gateway Q Mgr)
DEFINE QR(ANY.CLUSTER) RNAME('') RQMNAME('')
Lastly, how can I view the currdepth value on the local instances of the cluster queue. DIS QC(QUEUE) does not show it. And DIS Q(QUEUE) says object not found. |
|
Back to top |
|
 |
Vitor |
Posted: Tue Jan 22, 2008 12:35 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
MQWays wrote: |
- The cluster alias on the gateway
DEFINE QL(ANY.CLUSTER) RNAME('') RQMNAE('')
|
You do mean QR not QL don't you?
MQWays wrote: |
- The Request Qmgr alias on the gaeway with cluster attribute
I didn't get this. Please explain.
|
The alias must participate in the cluster.
MQWays wrote: |
Lastly, how can I view the currdepth value on the local instances of the cluster queue. DIS QC(QUEUE) does not show it. And DIS Q(QUEUE) says object not found. |
You can only view the depth from the queue manager where the queue is local. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
MQWays |
Posted: Tue Jan 22, 2008 1:17 am Post subject: |
|
|
Acolyte
Joined: 20 Jan 2008 Posts: 61
|
Yes, I do mean QR. QL was a typo in my post.
Was the definition of Qmgr alias on gateway correct. I didn't set any cluster attribute on the Qmgr alias defined on the gateway.
Quick Recap:
Problem: Unable to achieve workload distribution via amqsput in one go or several shots. All the messages are directed to one machine i.e. Machine 5.
Scenario & Definitions:
Machine 1(Outside Cluster):
- Defined remote queue with configs in earlier post.
- Set the DEFBIND on the remote queue to NOTFIXED
- CLWLUSEQ Qmgr attribute is set to LOCAL
Machine 2(Cluster Gateway-Full Repository):
- Defined Q mgr alias (ANY.CLUSTER) with configs in earlier post.
- CLWLUSEQ Qmgr attribute is set to ANY
- DEFBIND for Qmgr Alias (ANY.CLUSTER) attribute is set to OPEN
- DEFBIND for local instance of the clustered queue set to NOTFIXED
Machine 5(Cluster member holding the cluster queue-Full Respository)
- CLWLUSEQ Qmgr attribute is set to LOCAL
- CLWLUSEQ queue attrbite of the actual cluster queue is set to ANY
- DEFBIND for the cluster queue is set to NOTFIXED
Machine 4(Cluster member holding local instance of cluster queue-Full Repository)
- CLWLUSEQ Qmgr attribute is set to ANY
- DEFBIND for the local instance of the cluster queue is set to NOTFIXED
Appreciate a quick response. |
|
Back to top |
|
 |
Vitor |
Posted: Tue Jan 22, 2008 1:30 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
MQWays wrote: |
- DEFBIND for Qmgr Alias (ANY.CLUSTER) attribute is set to OPEN |
And you're wondering why all the messages are going to a single target?
I still think that alias should participate in the cluster, but if the messages are reaching Machine 5 then clearly not.
And you don't really need 3 Full Repositories in a cluster. 2 will suffice in most situations, ideally on the largest machines with the highest expected availability. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
MQWays |
Posted: Tue Jan 22, 2008 2:34 am Post subject: |
|
|
Acolyte
Joined: 20 Jan 2008 Posts: 61
|
I have done the change on the Q mgr alias as below
DIS Q(ANY.CLUSTER)
42 : DIS Q(ANY.CLUSTER)
AMQ8409: Display Queue details.
QUEUE(ANY.CLUSTER) TYPE(QREMOTE)
ALTDATE(2008-01-22) ALTTIME(14.24.01)
CLUSNL( ) CLUSTER( )
CLWLPRTY(0) CLWLRANK(0)
DEFBIND(NOTFIXED) DEFPRTY(0)
DEFPSIST(NO) DESCR( )
PUT(ENABLED) RQMNAME( )
RNAME( ) SCOPE(QMGR)
XMITQ( )
Yet, the problem is not resolved. All the messages put from the outside go to machine 5 only. I would like to achieve workload distribution between Machine 4 & Machine 5. Please suggest what I may be missing.
Also,
Quote: |
You can only view the depth from the queue manager where the queue is local. |
Then, how would I know what # of messages have been distributed to what all local instances of the cluster queue on different cluster members. |
|
Back to top |
|
 |
Vitor |
Posted: Tue Jan 22, 2008 2:41 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
MQWays wrote: |
All the messages put from the outside go to machine 5 only. I would like to achieve workload distribution between Machine 4 & Machine 5. Please suggest what I may be missing. |
You've checked the alias definitions; I'd work through and ensure that nothing is accidently specifing the queue manager name of Machine 5 explicitly (and from your posts it doesn't seem to be).
Then work back through the cluster. For instance, if you put directly to the cluster queue from machine 2, do the messages split across 4 & 5?
MQWays wrote: |
how would I know what # of messages have been distributed to what all local instances of the cluster queue on different cluster members. |
You'd engage accounting and statistics on the participating queue managers and amalgamate the results. Or use a proprietory monitoring package. Or ask whoever's giving you the requirement what they hope to gain from this information. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
MQWays |
Posted: Tue Jan 22, 2008 3:11 am Post subject: |
|
|
Acolyte
Joined: 20 Jan 2008 Posts: 61
|
Even if I put message directly into machine 2, the messages do not get split across between machine 4 & 5.
The only place where I see explicit name of the Q Mgr on Machine 5 is
DIS QC(QUEUE)
54 : DIS QC(QUEUE)
AMQ8409: Display Queue details.
QUEUE(QUEUE) TYPE(QCLUSTER)
ALTDATE(2008-01-22) ALTTIME(12.19.26)
CLUSDATE(2008-01-21) CLUSTER(NLB)
CLUSQMGR(MGR3) CLUSQT(QLOCAL)
CLUSTIME(22.28.27) CLWLPRTY(0)
CLWLRANK(0) DEFBIND(NOTFIXED)
DEFPRTY(0) DEFPSIST(NO)
DESCR( ) PUT(ENABLED)
QMID(MGR3_2008-01-21_22.16.38)
And the bold is where cluster queue is defined. |
|
Back to top |
|
 |
Vitor |
Posted: Tue Jan 22, 2008 3:35 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
If you're issuing a DIS QC(QUEUE) and only getting one instance listed, especially as machine2 is a Full Repository in your topology IIRC, then that's the only instance of QUEUE which the cluster believes exists and hence is getting all the messages for QUEUE put in the cluster.
You need to investigate why the instance of QUEUE which you have (on machine 4 presumably) is not visible to the cluster. Check the queue definition and the cluster channels. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Jan 22, 2008 4:48 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20757 Location: LI,NY
|
Quick Recap: see changes highlighted in red and additions in dark red
Problem: Unable to achieve workload distribution via amqsput in one go or several shots. All the messages are directed to one machine i.e. Machine 5.
Scenario & Definitions:
Machine 1(Outside Cluster):
- Defined remote queue with configs in earlier post.
- Set the DEFBIND on the remote queue to NOTFIXED
- CLWLUSEQ Qmgr attribute is set to LOCAL
Machine 2(Cluster Gateway-Full Repository):
- Defined cluster alias (ANY.CLUSTER) with configs in earlier post.
- CLWLUSEQ Qmgr attribute is set to ANY
- DEFBIND for Qmgr Alias (ANY.CLUSTER) attribute is set to NOTFIXED
- DEFBIND for local instance of the clustered queue set to NOTFIXED
- Define qmgr alias for qmgr on machine1 for the cluster (mycluster) or whatever your cluster name is
This enables the return path to MACH1 qmgr on machine 1
- DEF QL(TO.MACH1) USAGE(XMITQ) TRIGGER INITQ(SYSTEM.CHANNEL.INITQ)
- DEF QR(MACH1) RQMNAME(MACH1) CLUSTER(MYCLUSTER) XMITQ(TO.MACH1)
- DEF CHL(GTWY.TO.MACH1) CHLTYPE(SDR) TRPTYPE (TCP) +
CONNAME('machine1(port)') XMITQ(TO.MACH1)
Machine 5(Cluster member holding the cluster queue-Full Respository)
- CLWLUSEQ Qmgr attribute is set to LOCAL
- CLWLUSEQ queue attrbite of the actual cluster queue is set to ANY
- DEFBIND for the cluster queue is set to NOTFIXED
Machine 4(Cluster member holding local instance of cluster queue-Full Repository)
- CLWLUSEQ Qmgr attribute is set to ANY
- DEFBIND for the local instance of the cluster queue is set to NOTFIXED
 _________________ MQ & Broker admin |
|
Back to top |
|
 |
MQWays |
Posted: Tue Jan 22, 2008 6:06 am Post subject: |
|
|
Acolyte
Joined: 20 Jan 2008 Posts: 61
|
One-way workload distribution now WORKS.
Quote: |
I still think that alias should participate in the cluster, but if the messages are reaching Machine 5 then clearly not. |
I tried in negative and got through i.e. defined cluster attribute for Qmgr alias on the gateway even though the messages were reaching Machine 5.
I will now work on the reply to the Qmgr outside the cluster and revert if required.
Thanks. |
|
Back to top |
|
 |
|