[rabbitmq-announce] RabbitMQ 2.4.0 Release

Alexandru Scvortov alexandru at rabbitmq.com
Wed Mar 23 11:58:28 GMT 2011

The RabbitMQ team is delighted to announce the release of RabbitMQ

This release fixes a number of bugs and introduces some enhancements,
including fast routing for topic exchanges, sender-selected distribution
and server-side consumer cancellation notifications.

See the attached release notes for more details.

Binary and source distributions of the new release can be found in the
usual place at http://www.rabbitmq.com/download.html

We recommend that all users of earlier versions of RabbitMQ upgrade to
this latest release.

As always, we welcome any questions, bug reports, and other feedback on
this release, as well as general suggestions for features and
enhancements in future releases. Mail us via the RabbitMQ discussion
list at rabbitmq-discuss at lists.rabbitmq.com, or directly at
info at rabbitmq.com.

         The RabbitMQ Team

-------------- next part --------------
Release: RabbitMQ 2.4.0

Release Highlights

bug fixes
- in a cluster, don't fail with an internal-error when re-declaring a
  queue on a connection to a node other than the queue's "home" node
- in a cluster, report a not-found error instead of internal-error
  when attempting to re-declare a durable queue whose node is
- do not ignore the RABBITMQ_LOG_BASE variable on Windows
- fix a bug causing SSL connections to die on Erlang prior to R14
  when using "rabbitmqctl list_connections" with the SSL options
- various minor fixes

- greatly speed up routing for topic exchanges with many bindings
- propagate memory alarms across cluster, thus reacting better to
  memory pressure on individual nodes.
- sender-selected distribution (i.e. add support for the CC and BCC
  headers).  See
  for more information.
- server-side consumer cancellation notifications.  See
  for more information.
- have the server present its AMQP extensions in a "capabilities"
  field in server-properties.  See
  for more information.
- determine file descriptor limits accurately on Windows, usually
  resulting in much higher limits than previously, which allows more
  connections and improves performance
- indicate in the logs when the file descriptor limit has been reached
  (causing the server to not accept any further connections)
- allow SASL mechanisms to veto themselves based on socket type
- rename rabbitmq.conf to rabbitmq-env.conf, to avoid confusion with
- improve performance of publisher confirms
- various other minor enhancements and performance improvements

java client
bug fixes
- prevent stack overflow when connections have large numbers channels
- do not require a working reverse DNS when establishing connections

- ConnectionFactory accepts a connection timeout parameter
- allow prioritisation of SASL mechanisms
- support for server-side consumer cancellation notifications
- have the client present its AMQP extensions in a "capabilities"
  field in client-properties
- rename ReturnListener.handleBasicReturn to handleReturn

.net client
bug fixes
- WCF bindings specified in configuration files are no longer ignored

- support for server-side consumer cancellation notifications
- have the client present its AMQP extensions in a "capabilities"
  field in client-properties
- support IPv6

management plugin
bug fixes
- hide passwords in the web UI
- fix rabbitmqadmin's handling of Unicode strings

- present the managed socket and open file counts and respective limits
- better memory usage reporting for hibernating queues
- better support for serving the web interface through a proxy
- allow users to choose which node a queue is declared on
- show memory alarm states for nodes
- show statistics for basic.returns
- publish/receive messages via HTTP; this is intended for testing /
  learning / debugging, not as a general solution for HTTP messaging

STOMP plugin
bug fixes
- prevent crash when publishing from STOMP, but subscribing from
- correctly process publishes spanning multiple network packets
- do not crash when publishing with undefined headers
- receipts for SEND frames wait on confirms
- do not issue a DISCONNECT with receipt when a clean shutdown has
  *not* occurred

- add documentation. See http://www.rabbitmq.com/stomp.html
- significant performance improvements
- extend flow-control on back pressure through the STOMP gateway
  preventing the STOMP from overloading the server
- support for the "persistent" header
- support for multiple NACK

SSL authentication mechanism plugin
- only offer this mechanism on SSL connections

build and packaging
- Windows installer for the broker
- remove the rabbitmq-multi script in order to simplify startup and
  improve error reporting
- add the "cond-restart" and "try-restart" options to the init script
- specify runlevels in the rabbitmq-server.init script
- make the java client jar an OSGi bundle
- Debian package only depends on erlang-nox

To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
install the new version. All configuration and persistent message data
is retained.

To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
to 2.1.1 (which retains all data), and then to the current version as
described above.

To upgrade a clustered RabbitMQ or from releases prior to 2.1.0, if
the RabbitMQ installation does not contain any important data then
simply install the new version. RabbitMQ will move the existing data
to a backup location before creating a fresh, empty database. A
warning is recorded in the logs. If your RabbitMQ installation
contains important data then we recommend you contact
support at rabbitmq.com for assistance with the upgrade.

More information about the rabbitmq-announce mailing list