File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Websphere and the fly likes JMS Load Balancing In Websphere V7.0 Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Products » Websphere
Bookmark "JMS Load Balancing In Websphere V7.0" Watch "JMS Load Balancing In Websphere V7.0" New topic

JMS Load Balancing In Websphere V7.0

Sheeraz Junejo

Joined: Jul 28, 2009
Posts: 13
I have a JMS server running on a clustered environment with Request and Response queues.
It accepts a request and puts into a queue. The requests from the queue are then send to one of the nodes for processing where my MDB(On each node) is there. The problem is when one request is heavy and the one just following is light. The heavy request takes a long time to process and the light request is forced to wait until the former is done. Is it possible in IBM Websphere v7.0 ND to send the request to different servers at a time(or maybe more) so that a single request does not hijack all the resources? If yes, do we need a configuration change or we need to write a custom component for that?...

Many Thanks :-)
Sheeraz Junejo

Joined: Jul 28, 2009
Posts: 13
I found some information regarding this. To achieve this first we need to cluster the JMS Server and then WAS or JMS Server will load balance the request. BUT BUT...if you are using IBM WMQ Server as you JMS Cluster then there is catch....which is that response will always going to be on local queue. Let me explain, let say you have WAS Cluster which have four servers,
1) Server1 and Server2 are for Application hosting [as web servers]
2) Server3 and Server4 are configured to access WMQ Cluster [as J2EE servers].
3) WMQ Cluster is exposing two queues to the outside world (let say it has two queue managers internally but we do not need to go in depth of WMQ cluster at this stage).
4) Now application hosted on Server2 has generated a message which will initially be placed into its local queue and then load balanced to the clustered queue, where it will be consumed by MDB, MDB will process the request and put message back on response queue and theoretically your application should consume this message (response) but it will not until it will be put back on Server2 local response queue. The work around for this limitation is to always set 'replyTo' property while generating message from your application and check this property within your MDB before posting a response.

Hope this helps,


I agree. Here's the link:
subject: JMS Load Balancing In Websphere V7.0
jQuery in Action, 3rd edition