Chapter 2. Introduction
2.1. JBoss Messaging Features
- A strong focus on performance, reliability and scalability with high throughput and low latency.
- A foundation for JBoss ESB for SOA initiatives. (JBoss ESB uses JBoss Messaging as its default JMS provider.)
- publish-subscribe and point-to-point messaging models;
- persistent and non-persistent messages;
- guaranteed message delivery that ensures messages arrive once and only once where required;
- a transactional and reliable interface that supports ACID semantics;
- a customizable JAAS-based security framework;
- complete integration with JBoss Transactions (previously Arjuna JTA) to support full transaction recovery;
- an extensive JMX management interface;
- support for most major databases, including Oracle, DB2, Sybase, Microsoft SQL Server, PostgreSQL and MySQL;
- HTTP transport, for use with firewalls that allow only HTTP traffic;
- servlet transport to allow messaging through a dedicated servlet;
- SSL transport;
- configurable Dead Letter Queues (DLQs) and Expiry Queues;
- message statistics; which provide a rolling historical view of the messages delivered to queues and subscriptions;
- the automatic paging of messages to storage, which lets you use very large queues that would be too large to fit entirely within system memory; and
- strict message ordering which results in messages belonging to a particular message group being delivered according to the order of their arrival at the target queue.
- Fully-clustered queues and topics
Logical queues and topics are distributed across the cluster. You can send or receive a queue or topic to or from any node on the cluster.
- Fully-clustered durable subscriptions
A particular durable subscription can be accessed from any node of the cluster, letting you spread processing load from that subscription across the entire cluster.
- Fully-clustered temporary queues
If a sent message includes the
replyToof a temporary queue, it can be returned on any node of the cluster.
- Intelligent message redistribution
Messages are automatically moved between nodes of the cluster to take advantage of different consumer speeds on different nodes. This helps to prevent starvation or build-up of messages on a particular node.
- Message order protection
Enable this to ensure that the order of messages produced by a producer is identical to the order of messages consumed by a consumer. This works even if message redistribution is active.
- Completely transparent failover
When a server fails, your sessions continue exception-free on a new node. This is also completely configurable: if you do not want to implement this failover behavior, you can disable it and fall back to exceptions being thrown and manually recreating connections on a new node.
- High availability and seamless failover
If the node fails, you will automatically failover to a different node without losing any persistent messages and can seamlessly continue your session. Once and only once delivery of persistent messages is respected at all times.
- Message bridge
JBoss Messaging contains a message bridge component, which lets you bridge messages between any two JMS 1.1 destinations. This lets you connect geographically separate clusters and form large, globally-distributed logical queues and topics.