Over the years the JMS providers have changed within JBoss, here an overview:
JBoss JMS Messaging | |||
Community project (newest on top) | Latest version | Enterprise JBoss versions | Latest supported enterprise version |
JBoss HornetQ (standalone) | HornetQ2.1.2 (2010-08-17) | EAP 5.2+ | EAP 5.2 (n/a yet) |
JBoss Messaging (standalone) | JBM1.4.5 (2009-09-30) | EAP4.3 - EAP5.1 | EAP 5.1 (1.4.6.GA-SP1) |
JbossMQ (only with JBossAS) | (2008-07-18) | Until JbossAS4.0.5 | JbossAS4.0.5 End of life |
Note that all cited versions are compliant to the JMS specification 1.1 !
The enterprise version was renamed in 2006 from JBossAS to EAP !
Clustering JMS :
For JBoss Messaging follow http://community.jboss.org/wiki/JBMCluster.
JMS redelivery
JBoss transaction exist from JbossMQ on. But the idea of DLQ (Dead Letter Queue) only exist from JBoss Messaging on. The idea is that after a couple of unsuccessful deliveries of a message (meaning that message is non-acknoleged and client session timed out) the message will be put in a special queue (DLQ) and won't be delivered again. You can set the number of tries with the parameter DefaultMaxDeliveryAttempts which defaults to 10. You can also retry to send the message by delaying it with DefaultRedeliveryDelay (defaults to 0).
JMS transaction
- local transactions
- distributed transactions XA
http://www.javaworld.com/javaworld/jw-02-2002/jw-0315-jms.html