VMware

vFabric RabbitMQ 3.0 Release Notes

vFabric RabbitMQ 3.0.4 | 12 MAR 2013
RabbitMQ 3.0.3 | 6 MAR 2013
RabbitMQ 3.0.2 | 31 JAN 2013
RabbitMQ 3.0.1 | 11 DEC 2012
RabbitMQ 3.0.0 | 19 NOV 2012
RabbitMQ 2.8.7 | 27 SEP 2012

Last Document Update: 28 MAY 2013

What's in the Release Notes

These release notes cover the following topics:

What's New in vFabric RabbitMQ

Note: VMware® vFabric RabbitMQ™, a commercial product, is based on open source RabbitMQ, which releases more frequently than the commercial offering. The prior vFabric RabbitMQ release is based on open source release 2.8.6. vFabric RabbitMQ 3.0.4 is based on the prior open source release 3.0.4 and incorporates all enhancements and fixes that were added to open source RabbitMQ 2.8.7 and later releases. The following sections highlight some of those changes and provide links to the complete release notes, on the open source site, for RabbitMQ 2.8.7 and later. For complete information about vFabric RabbitMQ, see the vFabric RabbitMQ documentation.

RabbitMQ versions 3.0.4, 3.0.3, 3.0.2, 3.0.1, and 2.8.7 are maintenance releases that incorporate a number of bug fixes. See Resolved Issues and release notes for open-source RabbitMQ.

What's New in vFabric RabbitMQ 3.0.4

JMS Client for vFabric RabbitMQ is a client library for vFabric RabbitMQ 3.0, a component of VMware vFabric Suite Advanced. vFabric RabbitMQ is not a JMS provider but has features needed to support the JMS Queue and Topic messaging models. JMS Client for RabbitMQ implements the JMS 1.1 specification on top of the RabbitMQ Java client API, thus allowing new and existing JMS applications to connect with RabbitMQ brokers through Advanced Message Queueing Protocol (AMQP). This feature is available only with vFabric RabbitMQ.

See Using the JMS Client for vFabric RabbitMQ.

JMS Client for vFabric RabbitMQ release 1.0.1 (28 MAY 2013) is a maintenance release of the JMS client library. Release 1.0.1 also implements Simple Logging Façade for Java (SLF4J) logging in the JMS client library. With SLF4J, JMS client log messages can be delegated to one logging framework, such as Apache log4j. Instead of dealing with multiple logs and logging frameworks, you can consolidate logging from different components of an application into a single logging framework.

See Configuring Logging for the JMS Client for help setting up SLF4J with the JMS client.

What's New in RabbitMQ 3.0

RabbitMQ 3.0 introduced many new features and improvements. The following list highlights some of these enhancements. For detailed information, see the vFabric RabbitMQ documentation.

  • rabbitmq-mqtt plug-in. This plug-in implements Message Queue Telemetry Transport protocol version 3.1. It is a protocol adapter that allows MQTT-capable clients to connect to a RabbitMQ broker. The adapter translates MQTT methods into their AMQP equivalents and back. It supports QoS0 and QoS1 publish and subscribe, Last Will and Testament (LWT), SSL, and session stickiness.
  • rabbitmq-web-stomp plug-in. The rabbitmq-web-stomp plug-in is a simple bridge that exposes the STOMP protocol over emulated HTML5 WebSockets. It enables you to use RabbitMQ from web browsers.
  • Support for per-message time-to-live (TTL). In addition to being able to specify a TTL for messages on a per-queue basis, individual messages can have a TTL set when they are published.
  • Revamped user-friendly clustering commands. Clustering is easier to set up, and more checks for cluster consistency are performed at each step in the process. Also you can remove a dead node from a cluster without its cooperation.
  • Policy-based mirroring. You can take an existing unmirrored queue and make it mirrored with no downtime (and vice versa). You can also mirror queues on to a set number of nodes in a cluster. Mirrored queues are also faster.
  • Dynamic federation. Federation is more flexible, transparent to applications, and dynamic. You can federate or unfederate exchanges at any time; and add, remove and reconfigure upstreams without changing anything.
  • Partition detection. RabbitMQ now displays a large warning in the management plug-in when a network partition occurs (this warning is also available in rabbitmqctl cluster_status).
  • Memory use statistics. You can get a simple overview of where the memory used by your broker is going.

See the complete release notes for RabbitMQ 3.0.0.

Resolved Issues

Note: VMware® vFabric RabbitMQ™, a commercial product, is based on open source RabbitMQ, which releases more frequently than the commercial offering. The prior vFabric RabbitMQ release is based on open source release 2.8.6. vFabric RabbitMQ 3.0.4 is based on the prior open source release 3.0.4 and incorporates all fixes that were added to open source RabbitMQ 2.8.7 and later releases. The following sections highlight some of those fixes and provide links to the complete release notes, on the open source site, for RabbitMQ 2.8.7 and later.

Resolved Issues in RabbitMQ 3.0.4

  • Federation plug-in. A fix prevents the x-received-from header from leaking upstream credentials.
  • JMS Client for RabbitMQ 1.0.1:
    • Packaging. Logging with slf4j allows info, warning, error, trace, and debug entries to be incorporated into a single logging framework.
    • JMS client library. A fix prevents synchronous and asynchronous message consumption in the same session from causing a javax.jms.IllegalStateException (see JMS 1.1 specification §4.4.6).
    • JMS client library. Automatic acknowledgment is improved to avoid incorrect early acknowledgment before delivering messages.
    • JMS client library. An error condition caused by acknowledgments during the transaction commit protocol is eliminated.
    • JMS client library. An error causing reuse of RabbitMQ consumer tags when restarting a MessageConsumer is corrected.
    • Topic selector plug-in. The exchange plug-in is parametrized so that JMS identifier type information is supplied at exchange creation time,thus allowing potential re-use.
    • Topic selector plug-in. The type-checking of selector expressions is improved.
    • Topic selector plug-in. The organization of exchange information is changed to prevent potential clashes.

Resolved Issues in RabbitMQ 3.0.3

  • Server. Invocation of "rabbitmqctl stop_app" during server startup on a fresh node no longer leaves a corrupted Mnesia schema.
  • Server. Messages now expire immediately when they reach the head of a queue after a basic.get
  • Server. Parameters and policies for a vhost are removed when that vhost is removed.
  • Windows packaging. rabbitmq-plugins.bat acknowledges %RABBITMQ_SERVICENAME%.
  • Management plug-ins. 404 errors no longer appear when rabbitmq_federation_management is installed and rabbitmq_federation is not.
  • mqtt plug-in. The reader process hibernates when it is idle.

See the complete release notes for RabbitMQ 3.0.3.

Resolved Issues in RabbitMQ 3.0.2

  • Server. A race condition no longer causes queues to crash when stopping mirroring.
  • Server. Compilation is fixed on Erlang R16A.
  • Management plug-in. Error reporting is fixed for some broken policy declarations.
  • web-STOMP plug-in. rabbitmqctl status no longer kills web-STOMP connections.

See the complete release notes for RabbitMQ 3.0.2.

Resolved Issues in RabbitMQ 3.0.1

  • Server. A leak no longer occurs when dead-lettering to an exchange that does not route to queues.
  • Server. A fix prevents performance degradation when using small numbers of outstanding confirms with mirrored queues.
  • Management plug-in. A JSON encoding error listing non-AMQP connections has been fixed.
  • Management plug-in. A misleading error message no longer appears when administrator has no permissions.
  • Management plug-in Parameter and policy names are no longer missing from definitions export.

See the complete release notes for RabbitMQ 3.0.1.

Resolved Issues in RabbitMQ 3.0.0

  • Server. Messages that expire while the broker is stopped are dead-lettered correctly.
  • Server. A race condition at slave startup that caused a process leak and other problems has been fixed.
  • Server. Slaves are prevented from leaking memory when using persistence and confirms.
  • Management plug-in. Queue synchronization is shown correctly.
  • Management plug-in. The management port was moved out of the ephemeral range, which could result in the management plug-in failing to start. The new default port is 15672, with a redirect in place from 55672.
  • Management plug-in. Bindings with arguments containing AMQP tables and arrays are allowed.

See the complete release notes for RabbitMQ 3.0.0.

Resolved Issues in RabbitMQ 2.8.7

  • Server. This release fixed a race condition wherein a mirrored queue was prevented from sending further confirms, causing it to leak memory.
  • Erlang client. The management plug-in is now notified when connections fail as soon as they are opened.
  • STOMP plug-in. This release fixed a bug that caused alarms (for example, disk free space checking) to turn off.

See the complete release notes for RabbitMQ 2.8.7.