JBoss Messaging - Enterprise Open Source Messaging from Red Hat

Introduction

JBoss Messaging enables high performance, scalable, clustered messaging for Java

JBoss Messaging has a state of the art clustering implementation, allowing queues and topics to be seamlessly distributed across LANs and WANs

JBoss Messaging is the default JMS provider in JBoss Enterprise Application Platform and JBoss SOA Platform and will be the default JMS provider in JBoss Application Server version 5.0

JBoss Messaging requires Java 5.

JBoss Messaging is an integral part of Red Hat's strategy for messaging. JBoss Messaging focusses on enterprise messaging for Java

JBoss Messaging is production ready and currently used in production by various high profile customers.

(JBoss has had a production ready JMS provider for some years now in the form of JBossMQ. JBoss MQ is currently in bug fix mode only, and all new messaging development is channelled towards JBoss Messaging. JBoss Messaging is a completely new design and is not based on JBoss MQ).

Architecture

JBoss Messaging was designed and built from the ground up.

JBoss Messaging contains a fully functioning and highly scalable, state of the art clustering implementation and a full feature set over and above the standard JMS specification.

JBoss Messaging uses JGroups heavily to handle the group management and reliable multicast features required for scalable clustering.

The current latest production release of JBoss Messaging is 1.4.0.SP3

Work is already advancing well on JBoss Messaging 2.0 - currently being developed in a secret bunker by our crack new team of experienced engineers.

JBM 2.0's elegant new POJO-based design and re-factored core allows it to run in JBoss Micro-container as well as being embeddable in your own applications.

It also contains a new optimised persistence model that removes the database as a point of contention in the architecture and promises lightning-fast scalable persistence while retaining high availability.

We also have a completely new NIO based transport using Apache MINA.

The goal of JBM 2.0 is simple and uncompromising- to bring the highest levels of performance and reliability to messaging.

JMS compliance

JBoss Messaging is 100% Sun CTS (Compatibility Test Suite) JMS and JEE (1.4 and 5) compliant.

Features

JBoss Messaging contains a host of other features, including:

  • Full integration with JBoss Transactions (ex Arjuna codebase) for highly durable transactions
  • HTTP transport when firewalls will not allow non HTTP traffic
  • SSL transport
  • Full JMX management interface
  • Fully clustered queues and topics. "Logical" queues and topics are distributed across the cluster. You can send to a queue or a topic from any node, and receive from any other.
  • Fully clustered durable subscriptions. A particular durable subscription can be accessed from any node of the cluster - allowing you to spread processing load from that subscription across the cluster.
  • Fully clustered temporary queues. Send a message with a replyTo of a temp queue and it can be sent back on any node of the cluster.
  • Intelligent message redistribution. Messages are automatically moved between different nodes of the cluster if consumers are faster on one node than another. This can help prevent starvation or build up of messages on particular nodes.
  • Message order protection. If you want to ensure that the order of messages produced by a producer is the same as is consumed by a consumer then you can set this to true. This works even in the presence of message redistribution.
  • Fully transparent failover. When a server fails, your sessions continue without exceptions on a new node as if nothing happened. (Fully configurable - If you don't want this you can fall back to exceptions being thrown and manually recreation of connections on another node)
  • Configurable DLQs (Dead Letter Queues) and Expiry Queues
  • Message statistics. Gives you a rolling historical view of what messages were delivered to what queues.
  • JAAS security integration
  • Security configurable per destination
  • Automatic paging of messages to storage. Allows the use of very large queues - too large to fit in memory at once
  • Support for most major databases including Oracle, Sybase, MS SQL Server, PostgreSQL and MySQL
  • Fully featured message bridge allowing messages to be bridged from one JMS server to another, e.g. over a WAN. This allows the creation of distributed queues and topics on a global scale - deploy distributed destinations on your various LANs then link them together using the message bridge - over WANs or the internet - to form massive global distributed destinations
  • Scheduled delivery. Time of delivery can be specified for messages
  • Delayed redelivery
  • High performance - JBoss Messaging already far exceeds JBoss MQ peformance in every area.
  • Development

    We are always looking for talented individuals to help out with JBoss Messaging. Join us!

    Here are some useful links

    The current open JIRA tasks can be found here
    The project roadmap can be found here
    The design forum for discussion of technical design issues can be found here
    The user forum for discussion of user issues can be found here
    The JBoss Messaging WIKI can be found here

    Permanent development team

    Tim Fox (Project Lead), Jeff Mesnil (Core Developer), Clebert Suconic (Core Developer), Andy Taylor (Core Developer)

    Contributors

    Adrian Brock, Rajdeep Dua, Tom Elrod, Ovidiu Feodorov (Founder), Alex Fu, Jay Howell, Aslak Knutsen, Madhu Konda, Sergey Koshcheyev, Juha Lindfors, Alexey Loubyansky, Ron Sigal, Scott Stark, Luc Texier, Aaron Walker, Tyronne Wickramarathne,

    Messaging support team

    Jay Howell, David Boeren, Mike Clark, Tyronne Wickramarathne