|
Problem(Abstract) |
In all releases of WebSphere® Application Server V5.0, two
or more application servers can be configured in a cluster with the same
listener port, listening on the same queue, defined on each server. This
can cause unequal workload distribution between the message-driven beans
(MDBs) defined on each application server. Failover will work, so if one
application server is stopped, the MDB on the other will process the
incoming messages. However, when both servers are running, it is possible
that only one of the MDBs will process the messages on the target
queue. |
|
|
|
Cause |
There are several possible causes of this behavior,
including:
- The rate at which messages appear on the queue
- The complexity of the MDB
- The current workload on the machine
|
|
|
Resolving the
problem |
In the configuration described above, only one MDB will
pick up the incoming messages if:
- The messages are all placed on the queue at the same time
or
- They are placed on the queue at a very slow rate (for
example, less than ten messages per second, although the exact rate will
depend on the complexity of the MDB and the workload of the machine being
used).
If the rate is increased (usually to more than ten messages per
second), the messages should be distributed between the MDBs on all
servers in the cluster. Even in this scenario, an even distribution of the
messages is not guaranteed because the two listeners will compete for
messages on the queue.
For these reasons, the recommendation is that only one listener port
and one MDB be configured to listen on a queue.
|
|
|
|
|
Cross Reference information |
Segment |
Product |
Component |
Platform |
Version |
Edition |
Application Servers |
Runtimes for Java Technology |
Java SDK |
|
|
|
|
|
|