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 » MQCluster - QUery

Post new topic  Reply to topic
 MQCluster - QUery « View previous topic :: View next topic » 
Author Message
nik_iway
PostPosted: Tue May 16, 2006 11:36 pm    Post subject: MQCluster - QUery Reply with quote

Centurion

Joined: 21 Jul 2005
Posts: 115

Hi
I am newbie to MQ clustering. I have 2 Queue Manager on two
different Macines

MACHINE I - Queuemanager QA ip address(10.104.55.33)
MACHINE II - Queuemanager QB ip address(10.104.55.33)

I clustered the two Queuemanagers in CLUSTER called Cleint

I created a Clustered Queue Called TEST

I have java Application running in MACHINE III connecting to
MACHINE I -Queuemanager QA putting a message in
TEST clustered Queue

My Question is that if the MACHINE I - Queuemanager QA is down the
java application must keep message in TEST Clustered Queue in
MACHINE II - Queuemanager QB

How this can be achived...
Eagerly waiting for Reply

Regards
Nik
Back to top
View user's profile Send private message
jhalstead
PostPosted: Tue May 16, 2006 11:49 pm    Post subject: Reply with quote

Master

Joined: 16 Aug 2001
Posts: 258
Location: London

I think I get the gist of your question.

If the "TEST" queue exists on both QA & QB, and if messages have been put to both qmgr instances. Only the messages that reside on QB will be available when QA is down. i.e. the messages are stranded until QA comes back up.

Jamie
Back to top
View user's profile Send private message Send e-mail
nik_iway
PostPosted: Tue May 16, 2006 11:56 pm    Post subject: Reply with quote

Centurion

Joined: 21 Jul 2005
Posts: 115

Hi jhalstead
HI thanks for the reply, In my Java Program I am specifying

MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES_CLIENT);
MQEnvironment.hostname = "10.104.55.33";
MQEnvironment.port = 1414;
MQEnvironment.channel= "CHAN1";
MQQueueManager qMgr1 = new MQQueueManager("QA");

But the IP address for Queue Manager QB 10.104.55.36 is diffrent (Sorry of the wrong IP address in the Earlier Post)

If the Queue Manager in MACHINE I - Queuemanager QA(10.104.55.33) i want the messages to be put in TEST clustered Queue in MACHINE II - Queuemanager QB(10.104.55.36)

How to acheive this

Regards
Nik
Back to top
View user's profile Send private message
nik_iway
PostPosted: Tue May 16, 2006 11:58 pm    Post subject: Reply with quote

Centurion

Joined: 21 Jul 2005
Posts: 115

Hi jhalstead
HI thanks for the reply, In my Java Program I am specifying

MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES_CLIENT);
MQEnvironment.hostname = "10.104.55.33";
MQEnvironment.port = 1414;
MQEnvironment.channel= "CHAN1";
MQQueueManager qMgr1 = new MQQueueManager("QA");

But the IP address for Queue Manager QB 10.104.55.36 is diffrent (Sorry of the wrong IP address in the Earlier Post)

If the Queue Manager in MACHINE I - Queuemanager QA(10.104.55.33) IS DOWN i want the messages to be put in TEST clustered Queue in MACHINE II - Queuemanager QB(10.104.55.36)

How to acheive this

Regards
Nik
Back to top
View user's profile Send private message
EddieA
PostPosted: Wed May 17, 2006 11:10 am    Post subject: Reply with quote

Jedi

Joined: 28 Jun 2001
Posts: 2453
Location: Los Angeles

Because you are connecting to QA via a client, the messages will always be put to queue TEST on QA. If QA is down, your client application will not connect, and so must contain logic to try the connection to QB. Clustering does nothing to change this.

However, by introducing a 3rd QM in the cluster, as a gateway, you can connect to that QM, and it will distribute the messages to both QA and QB.

The Cluster Manual contains everything you need.

Cheers,
_________________
Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0
Back to top
View user's profile Send private message
vennela
PostPosted: Wed May 17, 2006 11:27 am    Post subject: Reply with quote

Jedi Knight

Joined: 11 Aug 2002
Posts: 4055
Location: Hyderabad, India

Or use channel tables. I know they are supported for java in v6.
But the best thing to do is to have the retry logic
Back to top
View user's profile Send private message Send e-mail Visit poster's website
nik_iway
PostPosted: Thu May 18, 2006 2:27 am    Post subject: Reply with quote

Centurion

Joined: 21 Jul 2005
Posts: 115

Hi EddieA
You were saying to create another Queuemanager say QC---
Where should it reside in MACHINE-I or II or in another
MACHINE and join it in CLUSTER TEST, thats
wat u meant to say


Regards
Nik
Back to top
View user's profile Send private message
EddieA
PostPosted: Thu May 18, 2006 9:11 am    Post subject: Reply with quote

Jedi

Joined: 28 Jun 2001
Posts: 2453
Location: Los Angeles

Where you put the QM is dependent on your infrastructure/hardware, as it doesn't really matter, as long as it can communicate with QA and QB.

Yes, it should be part of the Cluster, but does not host the clustered queue.

As I said, go read the Cluster manual, especially the sections on Gateway QMs.

Cheers,
_________________
Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0
Back to top
View user's profile Send private message
vennela
PostPosted: Thu May 18, 2006 9:42 am    Post subject: Reply with quote

Jedi Knight

Joined: 11 Aug 2002
Posts: 4055
Location: Hyderabad, India

EddieA wrote:


Yes, it should be part of the Cluster, but does not host the clustered queue.

In V6, this is not a requirement anymore.
But again, GW is always a single point of failure. Retry logic is what you need I guess.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Anirud
PostPosted: Thu May 18, 2006 10:36 am    Post subject: Reply with quote

Master

Joined: 12 Feb 2004
Posts: 285
Location: Vermont

Nik,
I know for sure that your scenario can be achieved by using MQ Client ( I never tried with a java client).
This can be done by creating two CLNTCONN channels (one to qmgr QA and one to qmgr QB). Copy the AMQCLCHL.TAB file onto the client machine. Specify a blank queue manager name while connecting to the queue manager. By doing so, if qmgr QA is down, the next available CLNTCONN channel will be used (in this case, it will be the channel to qmgr QB).

HTH.
Back to top
View user's profile Send private message Visit poster's website
PeterPotkay
PostPosted: Thu May 18, 2006 4:44 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7716

Anirud wrote:
By doing so, if qmgr QA is down, the next available CLNTCONN channel will be used (in this case, it will be the channel to qmgr QB).

Assuming that the Channel to QMB is named alphabetically after the Channel to QMA.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
Anirud
PostPosted: Mon May 22, 2006 2:29 pm    Post subject: Reply with quote

Master

Joined: 12 Feb 2004
Posts: 285
Location: Vermont

PeterPotkay wrote:
Assuming that the Channel to QMB is named alphabetically after the Channel to QMA.

That's the assumption I made.
Thanks Peter.
Back to top
View user's profile Send private message Visit poster's website
wschutz
PostPosted: Mon May 22, 2006 3:47 pm    Post subject: Reply with quote

Jedi Knight

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

Quote:
Specify a blank queue manager name while connecting to the queue manager.
or...you can specify a QMNAME(qmname) attribute on the channel clntconn definition and then select which channels you want used by specifing "*qmname" on the connect method. The "*" in front tells the client not to pass the qmgrname along to the qmgrname, so they don't need to match, viz:
Code:

def chl(a1) chltype(clntconn) qmname('qm-group1') conname(conn1)
def chl(b1) chltype(clntconn) qmname('qm-group1') conname(conn2)
def chl(a2) chltype(clntconn) qmname('qm-group2') conname(conn2)
def chl(b2) chltype(clntconn) qmname('qm-group2') conname(conn1)

assuming everything is up, if I specify "*qm-group1" on the connect, I go to conn1. If I specify "*qm-group2", I go to conn2...again, the real qmgr names aren't important since the "*" is specified.
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Clustering » MQCluster - QUery
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.