I would like to have multiple nodes in a cluster that can each host a JMS Queue, and can each run an MDB consuming that Queue -- so far this is a standard cluster/HA setup.
The catch is that I want to make sure the messages in the Queue are handled sequentially. I don't want both nodes in the cluster each taking a message and processing them at the same time. So either they can take turns or one can process messages and the other act as a failover, but I only want one MDB running onMesssage() at any given time.
I could do this inelegantly by enabling and disabling the MDBs using JMX, but that seems like more work than it should be. Any suggestions on a better way to approach this?