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 » Load Balancers

Post new topic  Reply to topic
 Load Balancers « View previous topic :: View next topic » 
Author Message
srivenu
PostPosted: Sat Jun 28, 2003 8:25 pm    Post subject: Load Balancers Reply with quote

Newbie

Joined: 28 Jun 2003
Posts: 6

I have installed MQSeries v 5.3 on 2 Solaris 2.8 servers. I want to implement a load balancing solution for the MQSeries installed on these servers. I am using Foundry equipment for the load balancers. I have configured Foundry so messages are posted only to the primary server. Messages will be diverted to the secondary if primary fails.
This works fine and messages are only sent to the primary server. However when I was running some tests and found that if stopped the queue manager on the primary using endmqm, Foundry is not able to divert messages to the secondary since it still sees port 1414 alive and thinks the primary is up. Foundry is configured to basically look for the service on port 1414.

Can I even implement a load balancing solution for MQ Series.

Thanks
Sri
Back to top
View user's profile Send private message
Michael Dag
PostPosted: Sun Jun 29, 2003 12:45 am    Post subject: Reply with quote

Jedi Knight

Joined: 13 Jun 2002
Posts: 2602
Location: The Netherlands (Amsterdam)

What is connecting to those 2 servers?
Clients or other MQ Servers?

If Clients are connecting you only need an MQ Client Channel Table with clntconn channels to both Queumanager in them and MQ will always connect to the first and then move to the second when the first is not available.

Do use *Qmgrname in your MQConn calls.

The example you gave more resembles failover instead of loadbalancing as nothing get's 'balanced' IMHO.

Michael
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
srivenu
PostPosted: Sun Jun 29, 2003 5:18 am    Post subject: Load Balancers Reply with quote

Newbie

Joined: 28 Jun 2003
Posts: 6

>>What is connecting to those 2 servers?
>>Clients or other MQ Servers?
MQClients written in Java


>>If Clients are connecting you only need an MQ Client Channel Table >>with clntconn channels to both Queumanager in them and MQ will >>always connect to the first and then move to the second when the first >>is not available.

Will take a look at the MQClient Channel Table. Did not know such a thing existed

>>Do use *Qmgrname in your MQConn calls.
We have customers outside the firewall posting to queues on MQSeries and they do use queue manager name

>>The example you gave more resembles failover instead of >>loadbalancing as nothing get's 'balanced' IMHO.
I am trying to implement failover, using Foundry load balancers. The Foundry equipment can be configured for failover support. I am not looking for load balancing just failover. It just seems that the Foundry equimpent cannot recognize one of the queue managers being down.
Back to top
View user's profile Send private message
Michael Dag
PostPosted: Sun Jun 29, 2003 1:47 pm    Post subject: Reply with quote

Jedi Knight

Joined: 13 Jun 2002
Posts: 2602
Location: The Netherlands (Amsterdam)

implementing a good failover you need to consider all kinds of options, so multiple scenarios are covered. Also important to know: what are your recovery times and criteria?

reading back your original post I noticed you tested failover using endmqm, but foundry still 'saw' the 1414 port listening, did you end the listener aswell using endmqlsr? this is a separate task from endmqm.
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
srivenu
PostPosted: Sun Jun 29, 2003 5:08 pm    Post subject: Load Balancers Reply with quote

Newbie

Joined: 28 Jun 2003
Posts: 6

>>implementing a good failover you need to consider all kinds of options, >>so multiple scenarios are covered. Also important to know: what are >>your recovery times and criteria?
Recovery time is important, that is why I am looking at the failover scenario. However the client is coded in such a way that messages will get to the queue eventually even if the servers are down currently.


>>reading back your original post I noticed you tested failover using >>endmqm, but foundry still 'saw' the 1414 port listening, did you end the >>listener aswell using endmqlsr? this is a separate task from endmqm.

when i did a endmqlsr after i bought the queue manager down mqseries told me that there were no listeners currently. The client is posting messages via a server connection channel. I am thinking that the way it works is when mq comes up a socket binds itself to port 1414 and unbinds itself at the end. So even when mq is down the port is alive and so foundry thinks that mqseries is up. Foundry can only be configured to a port.

I am going to try the mqclient channel table.
Back to top
View user's profile Send private message
mqonnet
PostPosted: Sun Jun 29, 2003 6:11 pm    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

To add to the discussion thats going on, you have to bear in mind that if you issue just "endmqm" and there were any api calls in progress, then they would contiue to be processed until they are finished. So, how sure are you that you are not doing a put of a large message or something like that using your client because of which even though endmqm might have come back, in reality the processes such as the agent might still be running. Did you check to verify that "all" of the MQ processes actually stopped that related to this QM in question???

The alternative to this would be to use either "endmqm -i" or "endmqm -p".

This is just a guess, since i am not really aware of what Foundry is, what it does and how it talks to MQ.

From MQ's point of view, if the QM is down, and the listener is still up and running, the client, if any is still connected somehow to this port, would not be able to process any further MQI calls anyways. Hence there OUGHT to be some sort of check in foundry if the only way it works is to read off a port to verify if the QM is in fact running for sure.

Hope this helps.

Cheers
Kumar
Back to top
View user's profile Send private message Send e-mail Visit poster's website
srivenu
PostPosted: Sun Jun 29, 2003 7:50 pm    Post subject: Load Balancers Reply with quote

Newbie

Joined: 28 Jun 2003
Posts: 6

Doesnt look like Java clients can use the client connection table based on what I have looked at.
Back to top
View user's profile Send private message
mrlinux
PostPosted: Mon Jun 30, 2003 4:30 am    Post subject: Reply with quote

Grand Master

Joined: 14 Feb 2002
Posts: 1261
Location: Detroit,MI USA

How are you running the listener ??? If you are using inetd this is your problem the listener wont come down with the queue manager, you
need to try the runmqlsr command or start the listener from the runmqsc
interface, this way when the queue manager comes down the listener will to and the balancer then should shift over to the secondary.
_________________
Jeff

IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries
Back to top
View user's profile Send private message Send e-mail
srivenu
PostPosted: Mon Jun 30, 2003 10:16 am    Post subject: Load Balancers Reply with quote

Newbie

Joined: 28 Jun 2003
Posts: 6

>>How are you running the listener ??? If you are using inetd this is your >>problem the listener wont come down with the queue manager, you
>>need to try the runmqlsr command or start the listener from the >>runmqsc
>>interface, this way when the queue manager comes down the listener >>will to and the balancer then should shift over to the secondary.

Works great. I tried running the listener out of the inetd process and foundry does the failover when the queue manager is down. However I had to manually end the mq listener using endmlsr -m after the queue manager is down. Also I had to manually start the mq listener after I started the queue manager from a unix command prompt like
strmqlsr -m queuemnagername -t TCP &
so it runs in the background.
Did not seem like I could start or end listener services from the runmqsc interface
Back to top
View user's profile Send private message
mrlinux
PostPosted: Mon Jun 30, 2003 3:38 pm    Post subject: Reply with quote

Grand Master

Joined: 14 Feb 2002
Posts: 1261
Location: Detroit,MI USA

So what fixed it, didnt quite understand ???

2 issues

1) you may need to add nohup in front of the startmqlsr command in order for the listener to conitinue to run after you logout.

2) echo "start listener" | runmqsc QMGR_NAME

QMGR_NAME = to your queue manager name, if default queue manager it is not needed
_________________
Jeff

IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries
Back to top
View user's profile Send private message Send e-mail
srivenu
PostPosted: Mon Jun 30, 2003 7:11 pm    Post subject: Load Balancers Reply with quote

Newbie

Joined: 28 Jun 2003
Posts: 6

>> So what fixed it, didnt quite understand ???
Pulling the listener out of the services and starting it manually helped the load balancers. Since I can manually end the listener now the load balancer detects if a particular listener is down.

Couple of questions though
1. Is there a way to start a listener when a queue manager starts automatically, without having to start it manually.
2. Can the listener be bought down when a queue manager is ended, without having to bring it down manually.
Back to top
View user's profile Send private message
mrlinux
PostPosted: Tue Jul 01, 2003 8:54 am    Post subject: Reply with quote

Grand Master

Joined: 14 Feb 2002
Posts: 1261
Location: Detroit,MI USA

Answers to questons

1) I dont know of away
2) when using this command echo "start listener" | runmqsc QMGR_NAME , I believe the listener comes down with the queue manager.
I havent tested this yet.
_________________
Jeff

IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Clustering » Load Balancers
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.