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 » Overlapping Clusters and Queue manager Alias

Post new topic  Reply to topic
 Overlapping Clusters and Queue manager Alias « View previous topic :: View next topic » 
Author Message
venkat kurra
PostPosted: Tue Jul 30, 2002 8:35 am    Post subject: Overlapping Clusters and Queue manager Alias Reply with quote

Master

Joined: 18 Oct 2001
Posts: 245
Location: Bloomington , IL

Hi,
Assume that we have 2 clusters CLUSTER1 and CLUSTER2 with full repository Queue managers QM1 and QM3 respectively. One more queue manager QM2 is partial and common to both clusters. As Mqseries standards it's not good idea to do this set up with one full repository/cluster.....just I want to test this setup for other configuration.

On QM1

ALTER QMGR REPOS(CLUSTER1)

DEFINE CHANNEL(TO.QM1) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME(XYZ..) CLUSTER(CLUSTER1)

DEFINE CHANNEL(TO.QM2) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME(ABC..) CLUSTER(CLUSTER1)

On QM2

DEFINE CHANNEL(TO.QM2) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME(ABC..) CLUSTER(CLUSTER1)

DEFINE CHANNEL(TO.QM1) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME(XYZ..) CLUSTER(CLUSTER1)

Then I tested cluster setup for CLUSTER1 and it worked fine.

On QM3

ALTER QMGR REPOS(CLUSTER2)

DEFINE CHANNEL(TO.QM3) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME(.......) CLUSTER(CLUSTER2)

DEFINE CHANNEL(TO.QM2) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME(........) CLUSTER(CLUSTER2)

On QM2

DEFINE NAMELIST(CLUSTER12) NAMES(CLUSTER1 , CLUSTER2)

And modified all Channels to namelist by using mqseries console.

Created one sender channel to QM3(namelist only).

Now QM1 and QM2 are in CLUSTER1 and QM2 and QM3 are in CLUSTER2.(QM2 is partial repos).I want to send a message from QM1 to QM3 with out using remote definition on QM2. I tried with queue manager alias on QM2 but it is not working.

I defined remote queue on QM1

DEFINE QREMOTE(QM3.LOCAL.QUEUE) RNAME(QM3.LOCAL.QUEUE) RQMNAME(QM3) XMITQ(' ')

Queue manager alias on QM2

DEFINE QREMOTE(QM3) RNAME(' ') RQMNAME(QM3) XMITQ(' ') CLUSTER(CLUSTER1)

This is visible on QM1

Clustered Local queue on QM3

DEFINE QLOCAL(QM3.LOCAL.QUEUE) CLUSTER(CLUSTER2)

this is visible on QM2.

I didn't see the message even in dead letter queue or cluster xmitq .If you have any idea ...please let me know.Thanks for your help.
_________________
Thanks,

Venkat Kurra

IBM Certified Specialist-MQSeries
IBM Websphere MQSeries Administrator
IBM WebSphere Message Broker System Admin
Back to top
View user's profile Send private message Send e-mail
venkat kurra
PostPosted: Tue Jul 30, 2002 11:44 am    Post subject: Reply with quote

Master

Joined: 18 Oct 2001
Posts: 245
Location: Bloomington , IL

I corrected my self.......
Just i modified cluster Sender channels to assocoated qmgrs cluster and getting 2 messages correctly.After that all messages went to dead letter queue because of Initiators and listeners are stopping at the time of sending messages from one qmgr to another.all this setup on my work statiion only.

Any idea?
_________________
Thanks,

Venkat Kurra

IBM Certified Specialist-MQSeries
IBM Websphere MQSeries Administrator
IBM WebSphere Message Broker System Admin
Back to top
View user's profile Send private message Send e-mail
PeterPotkay
PostPosted: Tue Jul 30, 2002 8:29 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7717

Method#1
Delete the remote queue def for QM3.LOCAL.QUEUE on QM1; you don't need it. When the app connected to QM1 goes to do its open of QM3.LOCAL.QUEUE, it also has to specify QM3 on the open call. This will cause your QM alias on QM2 to do its thing and send the message to QM3.

If you don't want to have to specify the QM on the Open call (just connect me to the default QM,for instance, which allows you to move your code between testing levels with no changes), do the following instead:

Method#2
Delete the remote queue def for QM3.LOCAL.QUEUE on QM1; you don't need it.
Get rid of the Queue Manager Alias on QM2, and replace it with a clustered Queue Alias on QM2, like so:

DEFINE QALIAS(MYQM3.LOCAL.QUEUE) TARGQ(QM3.LOCAL.QUEUE) CLUSTER(CLUSTER1) DEFBIND(NOTFIXED)

Now any app on CLuster1 (including QM1 like your requirement) that puts a message to MYQM3.LOCAL.QUEUE will have the message automatically end up on QM3.LOCAL.QUEUE on QM3.

When you open a queue you need to set DEFBIND to either (NOTFIXED) or (QDEF) because if it is left as the default (OPEN) the queue manager will resolve the alias definition to the bridge queue manager (QM2) that hosts it, and the bridge will not forward the message on.


If you have a request reply model, you probably want to use both methods. For apps that put the request message, use method #1, so they dont have to specify the QM name. For the repliers, use method#2, since the reply2qmname will be dynamically filled in by the requestor and the replier can just honor that field (again, no code changes between testing levels).
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
venkat kurra
PostPosted: Wed Jul 31, 2002 5:20 am    Post subject: Reply with quote

Master

Joined: 18 Oct 2001
Posts: 245
Location: Bloomington , IL

Thanks Peter,
I got solution in this way....

On QM2
DEFINE QREMOTE(CLUSTER2) RNAME(' ') RQMNAME('') XMITQ(' ') CLUSTER(CLUSTER1)

DEFINE QREMOTE(CLUSTER1) RNAME(' ') RQMNAME('') XMITQ(' ') CLUSTER(CLUSTER2)



ON QM1

DEFINE QREMOTE(QM3.LOCAL.QUEUE) RNAME(QM3.LOCAL.QUEUE) RQMNAME(CLUSTER2) XMITQ(' ')

DEFINE QLOCAL(QM1.LOCAL.QUEUE) CLUSTER(CLUSTER1)


ON QM3

DEFINE QLOCAL(QM3.LOCAL.QUEUE) CLUSTER(CLUSTER2)

DEFINE QREMOTE(QM1.LOCAL.QUEUE) RNAME(QM1.LOCAL.QUEUE) RQMNAME(CLUSTER1) XMITQ(' ')

Now this is working fine and need to do few more tests.

Listeners and Initiators stopped because of clusters are not set it up in proper way.
_________________
Thanks,

Venkat Kurra

IBM Certified Specialist-MQSeries
IBM Websphere MQSeries Administrator
IBM WebSphere Message Broker System Admin
Back to top
View user's profile Send private message Send e-mail
nimconsult
PostPosted: Wed Jul 31, 2002 10:59 pm    Post subject: Reply with quote

Master

Joined: 22 May 2002
Posts: 268
Location: NIMCONSULT - Belgium

I personally prefer a design where the "public" queues are exclusively advertised on the "gateway" queue manager instead of having them disseminated in the rest of the cluster.

Slight variation on your definitions:

On QM2:

DEFINE QALIAS(QM1.LOCAL.QUEUE) TARGQ(QM1.LOCAL.QUEUE) CLUSTER(CLUSTER2)

DEFINE QALIAS(QM3.LOCAL.QUEUE) TARGQ(QM3.LOCAL.QUEUE) CLUSTER(CLUSTER1)

On QM1:

DEFINE QLOCAL(QM1.LOCAL.QUEUE) CLUSTER(CLUSTER1)

On QM3:

DEFINE QLOCAL(QM3.LOCAL.QUEUE) CLUSTER(CLUSTER2)

The queue aliases on QM2 look strange but they work, I've tried it.
_________________
Nicolas Maréchal
Senior Architect - Partner

NIMCONSULT Software Architecture Services (Belgium)
http://www.nimconsult.be
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Clustering » Overlapping Clusters and Queue manager Alias
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.