[rabbitmq-announce] RabbitMQ 2.2.0 Release

Rob Harrop rob at rabbitmq.com
Tue Nov 30 11:19:23 GMT 2010


The RabbitMQ team is delighted to announce the release of RabbitMQ
2.2.0.

This release fixes a number of bugs and introduces some enhancements,
including automatic upgrades of non-clustered brokers, per-queue
message TTLs and significantly reduced memory usage for pending
acknowledgements.

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.

Regards,
        The RabbitMQ Team
-------------- next part --------------
Release: RabbitMQ 2.2.0

Release Highlights
==================

server
------
bug fixes
- fix issue that causes cross-cluster communication to deadlock after
  sustained cluster activity
- fix queue memory leak when using the management plugin or other
  consumers of queue statistics
- brokers started with rabbitmq_multi.bat are now restartable
- clustering reset no longer destroys installed plugins
- fix race condition between queue declaration and connection
  termination that causes spurious noproc errors to appear in the log
- fix memory leak when long-running channels consume and cancel on
  many queues
- queue.declare and exchange.declare raise precondition_failed rather
  than not_allowed when attempting to redeclare a queue or exchange
  with parameters different than those currently known to the broker

enhancements
- automatic, lossless upgrade to new versions of RabbitMQ
  (when not clustered)
- support per-queue message TTL. See:
  http://www.rabbitmq.com/extensions.html#queue-ttl
- the volume of pending acks is now bounded by disk space rather
  than by memory
- store passwords as hashes
- allow server properties to be configured in the RabbitMQ config file
- SSL connections are listed as such by rabbitmqctl
- simplify permission configuration by removing the client
  permission scope
- improve performance of message routing
- removed support for basic.recover with requeue=false

java client
-----------
enhancements
- 'noAck' argument renamed to 'autoAck'
- add PossibleAuthenticationFailureException and
  ProtocolVersionMismatchException to match up with the .net client.

.net client
-----------
bug fixes
- fix race condition that can cause spurious SocketErrors to be thrown
  during connection.close
- fix WCF support to use 'amq.direct' exchange instead of default
  exchange

management plugin
-----------------
bug fixes
- fix issue preventing user authentication when using Safari
- backing queue stats now display correctly

enhancements
- the management plugin is now fully cluster-aware
- show detailed incoming/outgoing message rates per channel, exchange
  and queue
- show active/idle state for channels and queues
- show node uptime, rabbit version, erlang version and total queued
  messages
- add tab completion to rabbitmqadmin

STOMP plugin
------------
enhancements
- overhaul the destination selection process to use only the
  'destination' header
- add support for /queue and /topic destinations
- remove support for custom 'routing_key' and 'exchange headers' and
  introduce /exchange/<name>/<key> destination type
- the order of SEND and SUBSCRIBE frames is no longer important
- STOMP listeners show up as such in the management plugin

build and packaging
-------------------
bug fixes
- remove build-time dependency on OTP source to allow users to
  build without the OTP source present
- eliminate all valid dialyzer errors

enhancements
- include pre-compiled man pages in the MacPorts distribution,
  drastically reducing the number of dependencies required.

Upgrading
=========
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