Release: RabbitMQ 1.7.1 Release Highlights ================== server ------ bug fixes - correct various quoting errors in the Windows scripts that caused them to fail - ensure that stalled ssl negotiation do not block further ssl connection acceptance - prohibit the (re)declaration of queues that reside on node that is currently stopped, thus preventing message loss or duplication when that node recovers - eliminate race condition in queue auto-deletion, ensuring that it has completed before channel/connection closure completes - ensure that ack processing cannot stall under heavy load when using basic.qos - make plug-ins and config files work when running as a Windows service - write crash dumps to a sensible location (%APPDATA%\RabbitMQ\erl_crash.dump by default) when running as a Windows service - get the Windows service to use Erlang/OTP R12B-5 by default, since that, rather than R11B-5, is what we ship in the Windows bundle - correct formatting of plug-in activation errors - make column order of 'rabbitmqctl list_bindings' match the documentation - do not escape spaces in rabbitmqctl output - prevent vars declared in Windows scripts from polluting the environment - clean up properly when the rabbit Erlang application is stopped, thus making it more well-behaved and easier to embed enhancements - make the various scripts work with complete short node names - improve memory monitoring and producer throttling. See the updated documentation at https://www.rabbitmq.com/extensions.html#memsup. - make tcp_listeners configurable via the rabbitmq.config file - use the base64 module instead of ssl_base64 if we can, since the latter is sometimes missing from Erlang installations - display pids instead of just nodes in 'rabbitmqctl list_connections' and 'rabbitmqctl list_queues', to aid troubleshooting - add capability to display the transmitted client_properties in 'rabbitmqctl list_connections' - extend codec with array type ('A') - add proper headers to auto-generated code Java client ----------- bug fixes - eliminate race in connection establishment that could cause errors to be reported in different ways - fix quoting in runjava.bat to stop it from tripping over exotic Windows paths enhancements - enforce codec size limits, specifically on AMQP's shortstr type, thus preventing the creation of invalid AMQP protocol frames - add support for basic.recover in the API - name threads, to aid troubleshooting - allow applications to adjust socket configuration, e.g. buffer sizes - extend codec with array type ('A') - throw a more informative exception (UnknownChannelException) when receiving a frame for an unknown channel - add proper headers to auto-generated code .net client ----------- bug fixes - close connections on app domain unload, thus preventing spurious errors and possible connection leaks when the client is run in certain app containers, e.g. IIS - close socket on ssl upgrade error, thus plugging a socket leak - resolve various bugs in the ssl negotiation code that cause it to fail on .Net proper (though not mono) enhancements - improve performance by introducing I/O buffering - permit ssl connections that do not validate the server certificate - improve standard display of BrokerUnreachableException - make SharedQueue implement IEnumerable and allow multiple concurrent enumerators per instance - switch the code gen to the BSD-licensed version of the AMQP spec - extend codec with array type ('A') - add proper headers to auto-generated code building & packaging -------------------- bug fixes - stop Debian package purge from failing after plug-in (de)activation - when upgrading the rpm package, do not remove rabbit from any runlevels - fix error handling in rabbit.app generation, ensuring that errors are reported rather than written to the generated file - during Debian package removal, only kill epmd if it was started by the rabbitmq user, in order to reduce the likelihood of interference with other Erlang applications - resolve minor incompatibility with some versions of 'echo' that could result in spurious '-e's appearing in script error messages enhancements - make MacPorts package work on Snow Leopard - streamline dependencies in MacPorts package - automate generation of MacPorts package and create a RabbitMQ MacPorts repository - see https://www.rabbitmq.com/macports.html - mirror downloads onto Amazon Cloudfront, for better availability and download speed - allow 'rabbitmq' user to execute the various wrapper scripts Upgrading ========= The database schema has not changed since the 1.6.0 release, so user accounts, durable exchanges and queues, and persistent messages will all be retained during the upgrade. If, however, you are upgrading from a release prior to 1.6.0, when the RabbitMQ server detects the presence of an old database, it moves it to a backup location, creates a fresh, empty database, and logs a warning. If your RabbitMQ installation contains important data then we recommend you contact rabbitmq-sales@pivotal.io for assistance with the upgrade.