JBoss.org Community Documentation
While the HA-JMS queues and topics only run on a single node at a time, MDBs on multiple nodes can receive and process messages from the HA-JMS master node. The contested queues and topics result in load balancing behavior for MDBs. To enable loading balancing for MDBs, you can specify a receiver for the queue. The receiver records which node is waiting for a message and in which order the messages should be processed. JBoss provides three receiver implementations.
The org.jboss.mq.server.ReceiversImpl
is the default implementation
using a HashSet
.
The org.jboss.mq.server.ReceiversImplArrayList
is the implementation
using an ArrayList
.
The org.jboss.mq.server.ReceiversImplLinkedList
is the
implementation using a LinkedList
.
You can specify the receiver implementation class name as an attribute in the MBean that
defines the permanent JMS Queue
or DestinationManager
on
each node. For best load balancing performance, we suggest you
to use the ReceiversImplArrayList
or
ReceiversImplLinkedList
implementations due to an undesirable implementation
detail of HashSet
in the JVM.