Author |
Message
|
mdncan |
Posted: Thu May 31, 2012 6:22 am Post subject: Qmgr Cluster Workload Design issue |
|
|
Acolyte
Joined: 11 May 2005 Posts: 59 Location: US
|
I have 2 queue managers in a mq cluster one each on a separate Data Center:
On QM1 (Primary Center), have 2 queues QL1 (primary queue) and QL2 (secondary queue)
on QM2 (DR Center), have 2 queues QL1 (secondary queue) and QL2 (primary queue)
Producer and Listeners are configured to put/listen to each queue on both the data centers. In a steady state, Producing application in the Primary Data Center puts 2 copies of a message one on the Primary Data Centers QL1 and second copy on the queue QL2 (messages should go to QL2 on the DR center using mq internal routing). i expect messages to come to and consumed in primary queues and don't expect any messages on the secondary queues.
I need to design in such a way that for any reason if one of the Queue Managers are unavailable, messages should stay in the secondary queue.
I have created cluster queues with clwlrank 5 & 3, 5 on the primary queues and 3 on the secondary queues. If QM2 is down and the messages put on QL2 on QM1 should stay instead of piling up in SYSTEM.CLUSTER.TRANSMIT.QUEUE. Since the cluster knows that there's another queue with the same name in the cluster has higher rank, messages are waiting in SYSTEM.CLUSTER.TRANSMIT.QUEUE.
My question is, are there any other queue parameters that can do a job of keeping the messages ina low ranking queues when the high rank queue is unavailable.
Any help would be highly appreciative. I also need some clarification on CLWLPRTY & CLWLUSEQ, to see if they can help me in any way in the above scenario.
MQ Version: 7.0.1.8
OS: Solaris _________________ IBM Certified System Administrator- WebSphere Application Server, Network Deployment, V6.0
IBM Certified System Administrator - WebSphere MQ V6.0
Last edited by mdncan on Thu May 31, 2012 9:11 am; edited 1 time in total |
|
Back to top |
|
 |
mqjeff |
Posted: Thu May 31, 2012 7:03 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
CLWLUSEQ gives you a choice in behavior. In versions previous to MQ V6, when a message was addressed to a queue that was shared in a cluster AND there was a qlocal of the same name on the queue manager the sending application was connected to, the message would always go to that qlocal INSTEAD of going to any QCLUSTERs.
In later versions, this default behavior has been modified such that it will treat the QLOCAL instance as just another destination. So if there is one QLOCAL and one QCLUSTER, then messages will be split equally between the two destinations.
CLWLUSEQ allows you to revert the default behavior to the previous version, such that ALL messages will go the QLOCAL instead of ANY QCLUSTER. ONLY if there are NO QLOCALs will ANY messages go to QCLUSTERs.
This is settable at the Qmgr level or at the Queue level.
You are otherwise trying to use MQ Clusters for things that are not strictly in their purview. MQ Clustesr are for load balancing, not failover. |
|
Back to top |
|
 |
mdncan |
Posted: Thu May 31, 2012 9:16 am Post subject: |
|
|
Acolyte
Joined: 11 May 2005 Posts: 59 Location: US
|
Thanks for the reply, understand your point. However, I am trying to see if i can combine loadbalancing with failover. _________________ IBM Certified System Administrator- WebSphere Application Server, Network Deployment, V6.0
IBM Certified System Administrator - WebSphere MQ V6.0 |
|
Back to top |
|
 |
mqjeff |
Posted: Thu May 31, 2012 9:23 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
mdncan wrote: |
Thanks for the reply, understand your point. However, I am trying to see if i can combine loadbalancing with failover. |
It's a floor wax, and a dessert topping. |
|
Back to top |
|
 |
Vitor |
Posted: Thu May 31, 2012 9:34 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
mqjeff wrote: |
It's a floor wax, and a dessert topping. |
Even though the metaphor is apposite. These concepts do not combine in any way you'd want to use (or eat). _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
guy11 |
Posted: Mon Jun 04, 2012 10:15 pm Post subject: |
|
|
Newbie
Joined: 16 May 2012 Posts: 8
|
Sorry to hijack the thread. my question is also related.
we have 2 QM hosting same cluster queues and normally traffic is load balanced between them.
when we need to do server/app maintenance/reboot, we increase the value of CLWLPRTY property in cluster receiver channel of the other queue manager there by directing all traffic to other qm and method is working for past 8 months.
But i am getting frequent cluster resolution errors in my environment in the past few months.
will changing CLWLPRTY attribute may be contributing factor ? |
|
Back to top |
|
 |
Mr Butcher |
Posted: Mon Jun 04, 2012 10:24 pm Post subject: |
|
|
 Padawan
Joined: 23 May 2005 Posts: 1716
|
i dont think so, because changing CLWLPRTY should not change the availiability of the objects, its just the priority you modify. therefore the objects should still be found.
where do you get these errors? how are the connections from that qmgr to the cluster qmgrs? is everything active and available? check the known cluster qmgr and cluster queue objects on that qmgr. when do you get the error? random? even without fiddling around with the CLWLPRTY ? or only then? or only when one of the both cluster QMs hosting the queue are not available? does it matter which one is not available? if yes, how are cluster definitions for this one in the failing qmgr?
and so on.
its not that i want you to tell us all that, i would check all that in your case to find the reason for the resolution errors. _________________ Regards, Butcher |
|
Back to top |
|
 |
guy11 |
Posted: Wed Jun 06, 2012 1:10 am Post subject: |
|
|
Newbie
Joined: 16 May 2012 Posts: 8
|
Mr Butcher wrote: |
i dont think so, because changing CLWLPRTY should not change the availiability of the objects, its just the priority you modify. therefore the objects should still be found.
where do you get these errors? how are the connections from that qmgr to the cluster qmgrs? is everything active and available? check the known cluster qmgr and cluster queue objects on that qmgr. when do you get the error? random? even without fiddling around with the CLWLPRTY ? or only then? or only when one of the both cluster QMs hosting the queue are not available? does it matter which one is not available? if yes, how are cluster definitions for this one in the failing qmgr?
and so on.
its not that i want you to tell us all that, i would check all that in your case to find the reason for the resolution errors. |
Issue happens randomly with both cluster qmgrs and objects available (chls running) with & without change(diff) in CLWLPRTY.
Does meddling with CLWLPRTY can cause breakdown in cluster communications ?.
Application get 2189 cluster resolution error and when i try manually using amqsput utility i get 2085 object not found. But a display qc(qname) shows the queues. Error has been noticed on application running at both full repository as well as partial repository managers end. But no errors reported in MQ Error logs.
i |
|
Back to top |
|
 |
Mr Butcher |
Posted: Wed Jun 06, 2012 3:19 am Post subject: |
|
|
 Padawan
Joined: 23 May 2005 Posts: 1716
|
well, if you are sure everything in your cluster is defined properly and available, and you still get resolution error, you should check your maintenance level, and if that one is fine too then you should maybe open a record with IBM. _________________ Regards, Butcher |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Jun 06, 2012 9:11 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
guy11 wrote: |
Issue happens randomly with both cluster qmgrs and objects available (chls running) with & without change(diff) in CLWLPRTY.
Does meddling with CLWLPRTY can cause breakdown in cluster communications ?.
Application get 2189 cluster resolution error and when i try manually using amqsput utility i get 2085 object not found. But a display qc(qname) shows the queues. Error has been noticed on application running at both full repository as well as partial repository managers end. But no errors reported in MQ Error logs.
i |
I suspect that your full repositories also process messages...
You would get that type of error if the cluster communications between FR and PR are somewhat slow or stopped (due to a queue full at the FR?) thus making the cluster resolution impossible.
It might be time for you to put the FR's on dedicated qmgrs that do nothing else but act as FR's to the cluster.
This way you also separate cluster resolution traffic from any other traffic.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|