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 » CLWLUSEQ parameter

Post new topic  Reply to topic
 CLWLUSEQ parameter « View previous topic :: View next topic » 
Author Message
ramires
PostPosted: Thu Jul 20, 2006 4:51 pm    Post subject: CLWLUSEQ parameter Reply with quote

Knight

Joined: 24 Jun 2001
Posts: 523
Location: Portugal - Lisboa

Hello,

I'm testing the cluster options for v6. I have a cluster with 3 qmgrs (QMAA; QMBB and QMCC). Each one has a cluster queue (CL1.CLUS) with DEFBIND(NOTFIXED) and CLWLUSEQ(ANY).
QMAA, queue manager to act as gateway, has CLWLUSEQ(ANY).
A fourth queue manager outside the cluster has a remote queue defention pointing to QL1.CLUS on QMAA, and a sender chl to QMAA

If I put disable QL1.CLUS on QMAA I was expecting the messages routed to the other 2 instances of the queue CL1.CLUS (on QMBB and QMCC) but theu go to QMAA dead queue with MQRC_PUT_INHIBITED.

Something is missing, but I'm not finding what it is.
Any suggestions?

Thanks
Joao Ramires
Back to top
View user's profile Send private message
wschutz
PostPosted: Thu Jul 20, 2006 5:11 pm    Post subject: Reply with quote

Jedi Knight

Joined: 02 Jun 2005
Posts: 3316
Location: IBM (retired)

I would create a qmgr alias on QMAA:

def qr(QMAA) rname(' ') rqmname(' ')

not 100% sure it'll work, but worth a try....
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
ramires
PostPosted: Thu Jul 20, 2006 5:27 pm    Post subject: Reply with quote

Knight

Joined: 24 Jun 2001
Posts: 523
Location: Portugal - Lisboa

Thanks,

I just tried the queue manage alias om QMAA, but the result is the same. The destination is dead letter.

joao
Back to top
View user's profile Send private message
wschutz
PostPosted: Thu Jul 20, 2006 5:35 pm    Post subject: Reply with quote

Jedi Knight

Joined: 02 Jun 2005
Posts: 3316
Location: IBM (retired)

Well, the doc does say:
Quote:
Using a queue manager as a gateway into the cluster.
This enables workload balancing for messages coming from outside the cluster.

Suppose you have a queue called EDINBURGH on more than one queue manager in the cluster, and you want the clustering mechanism to balance the workload for messages coming to that queue from outside the cluster.

A queue manager from outside the cluster needs a transmit queue and sender channel to one queue manager in the cluster, which is called a gateway queue manager. To take advantage of the default workload balancing mechanism, one of the following must apply:

* The gateway queue manager must not contain an instance of the EDINBURGH queue.
* The gateway queue manager specifies CLWLUSEQ(ANY) on ALTER QMGR.
* The EDINBURGH queue on the gateway queue manager specifies CLWLUSEQ(ANY).

http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=/com.ibm.mq.csqzah.doc/csqzah0729.htm
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
ramires
PostPosted: Thu Jul 20, 2006 5:56 pm    Post subject: Reply with quote

Knight

Joined: 24 Jun 2001
Posts: 523
Location: Portugal - Lisboa

Wayne, I saw that, and its not clear to me. The manual also says this:

Quote:

CLWLUSEQ queue manager attribute

...
WebSphere MQ applies the following rules to restrict the number of remote hops to one: If a message arrives over a cluster channel, it must be put to a local instance of a cluster queue. If put locally or over a non-cluster channel, messages can be put to a local or remote cluster queue instance.

If I put locally the CLWLUSEQ(ANY) is respected.

In the text you mention I understand when it says "one of the following must apply" the case I'm testing the condition that aplies is "
EDINBURG queue on the gateway queue manager specifies CLWLUSEQ(ANY)".
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Jul 20, 2006 8:19 pm    Post subject: Reply with quote

Grand High Poobah

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

Your error is in specifying the qmgr on the remote queue. This locks in the qmgr. If you want to try with "any" try this: Specify the alias on the remote queue as qmgr. Set the alias as shown by wayne and use the xmit queue sending it to the clustered qmgr. On the cluster qmgr this will then resolve to the available clustered queue.

Enjoy
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
ramires
PostPosted: Fri Jul 21, 2006 12:40 am    Post subject: Reply with quote

Knight

Joined: 24 Jun 2001
Posts: 523
Location: Portugal - Lisboa

fjb_saper, thanks.

II'll try that. With v5 a alias queue manager was in fact nedded. In v6 using CLWLUSEQ should be enough. CLWLUSEQ is respected when I locally put to the cluster queue (I'm using q.exe program) As the MCA receiver is another MQ application I dont' see reason for the msgs not reaching the other cluster queue instances when they arrive over a receiver channel.

Regards
Back to top
View user's profile Send private message
ramires
PostPosted: Fri Jul 21, 2006 5:29 am    Post subject: Reply with quote

Knight

Joined: 24 Jun 2001
Posts: 523
Location: Portugal - Lisboa

fjb_saper, wayne

It works ok when I define an ALIAS qmgr (like ANY.CLUSTER) in the gateway qmgr and in the remote queue definition outside the cluster change the RQMNAME to ANY.CLUSTER.

I'm trying to bypass this, because I've several qmgrs outside the cluster, and they are under other administration. I want to avoid asking them to change remote queue definitions. Maybe with a channel exit on the receiver to change qmgr name?

Regards
Back to top
View user's profile Send private message
ramires
PostPosted: Mon Jul 24, 2006 5:32 am    Post subject: Reply with quote

Knight

Joined: 24 Jun 2001
Posts: 523
Location: Portugal - Lisboa

One possible solution is to use de runmqdlq to forward messages from the dead letter queue on the gateway queue manager to the other queue instancies on the cluster, and it works.

My receiver channel fails to put to QL1.CLUS because it has put inibithed.
The message goes to dead letter queue, then runmqdlq forwards it to the same queue (QL1.CLUS). This QL1.CLUS has CLWLUSEQ(ANY), the messages are routed to the final destination.

Not very "clean", but it can be used.
Back to top
View user's profile Send private message
jeevan
PostPosted: Thu Apr 05, 2007 1:16 am    Post subject: Reply with quote

Grand Master

Joined: 12 Nov 2005
Posts: 1432

wschutz wrote:
Well, the doc does say:
Quote:
Using a queue manager as a gateway into the cluster.
This enables workload balancing for messages coming from outside the cluster.

Suppose you have a queue called EDINBURGH on more than one queue manager in the cluster, and you want the clustering mechanism to balance the workload for messages coming to that queue from outside the cluster.

A queue manager from outside the cluster needs a transmit queue and sender channel to one queue manager in the cluster, which is called a gateway queue manager. To take advantage of the default workload balancing mechanism, one of the following must apply:

* The gateway queue manager must not contain an instance of the EDINBURGH queue.
* The gateway queue manager specifies CLWLUSEQ(ANY) on ALTER QMGR.
* The EDINBURGH queue on the gateway queue manager specifies CLWLUSEQ(ANY).


The document says this, have any one you tested that the non local cluster queue at gw qmgr has this attribute? I could not find CLWLUSEQ attribute in the EDINBURGH queue (symbolic ).

The cluster queue whose local instance is not on the gateway, has only the following attributes:

AMQ8409: Display Queue details.
QUEUE(CQ1) TYPE(QCLUSTER)
ALTDATE(2007-04-05) ALTTIME(04.52.20)
CLUSDATE(2007-04-05) CLUSTER(COTSPCL2)
CLUSQMGR(QM1) CLUSQT(QLOCAL)
CLUSTIME(04.52.21) CLWLPRTY(0)
CLWLRANK(0) DEFBIND(OPEN)
DEFPRTY(0) DEFPSIST(NO)
DESCR( ) PUT(ENABLED)
QMID(QM1_2007-04-05_04.51.11)

Also, I looked at a few interesting discussions about cluster, it is not clear, that whether it is better to make a FR as a gateway or not. Do we also use one of the FR in load balancing ? this is more as practical question and I am seeking your expert opinion.

Third, what is the role of defbing in attribute of the queue ? What is role of mqoo_bIND_ON_OPEN parameter in the application ? are they surve the same purpose


Also, there are CLWLPRTY and CLWLRAN attrribute on queue managers and on clusrcvr channel.


The list of setup goes on and on. I am not sure what are the necessary setup to achieve:

Load balancing
failover ( among three pr, I would like to use one of them for failover of either of the PR)


Thank you very much,


http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=/com.ibm.mq.csqzah.doc/csqzah0729.htm
Back to top
View user's profile Send private message
jeevan
PostPosted: Thu Apr 05, 2007 1:53 am    Post subject: Reply with quote

Grand Master

Joined: 12 Nov 2005
Posts: 1432

are not the following two excerpt conflicting each other. Both are from IBM document.


1. Using a queue manager as a gateway into the cluster.

This enables workload balancing for messages coming from outside the cluster. Suppose you have a queue called EDINBURGH on more than one queue manager in the cluster, and you want the clustering mechanism to balance the workload for messages coming to that queue from outside the cluster. A queue manager from outside the cluster needs a transmit queue and sender channel to one queue manager in the cluster, which is called a gateway queue manager. To take advantage of the default workload balancing mechanism, one of the following must apply:

The gateway queue manager must not contain an instance of the EDINBURGH queue.

The gateway queue manager specifies CLWLUSEQ(ANY) on ALTER QMGR.
The EDINBURGH queue on the gateway queue manager specifies
CLWLUSEQ (any)

2. CLWLUSEQ queue attribute

This queue attribute specifies the behavior of an MQPUT operation when the target queue has a local instance and at least one remote cluster instance (except where the MQPUT originates from a cluster channel). This parameter is valid only for local queues. If you specify QMGR, the behavior is as specified by the CLWLUSEQ parameter of the queue manager definition. If you specify ANY, the queue manager treats the local queue as another instance of the cluster queue for the purposes of workload distribution. If you specify LOCAL, the local queue is the only target of the MQPUT operation.


http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=/com.ibm.mq.csqzah.doc/q3.htm
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Clustering » CLWLUSEQ parameter
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.