463 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Markdown
		
	
	
	
		
		
			
		
	
	
			463 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Markdown
		
	
	
	
|  | ## Release Highlights
 | ||
|  | 
 | ||
|  | This is the release notes for RabbitMQ 3.6.0 RC3. This is a preview of | ||
|  | a feature release. | ||
|  | 
 | ||
|  | Key improvements in this release are: | ||
|  | 
 | ||
|  |  * Lazy queues | ||
|  |  * Much better queue synchronisation throughput | ||
|  |  * Lower RAM use, tunable flow control | ||
|  |  * Stronger password encryption with pluggable algorithms | ||
|  |  * Development moved to GitHub; build system now uses erlang.mk | ||
|  |  * Significant improvements to Web STOMP | ||
|  |  * Experimental WinRT-compatible .NET client, SQL CLR compatibility in the "regular" one | ||
|  |  * Pagination in management UI | ||
|  | 
 | ||
|  | 
 | ||
|  | ### Server
 | ||
|  | 
 | ||
|  | #### Bug Fixes
 | ||
|  | 
 | ||
|  |  * Cluster-wide alarm state is not updated when alarmed node goes down. | ||
|  | 
 | ||
|  |    Contributed by Alexey Lebedeff (@binarin). | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#362](https://github.com/rabbitmq/rabbitmq-server/issues/362) | ||
|  | 
 | ||
|  |  * Blocked connections could be unblocked too early. | ||
|  | 
 | ||
|  |    When multiple resource alarms were in effect, clearing just one of them would | ||
|  |    unblock all publishers prematurely. | ||
|  | 
 | ||
|  |    Contributed by Alexey Lebedeff (@binarin). | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#379](https://github.com/rabbitmq/rabbitmq-server/issues/379) | ||
|  | 
 | ||
|  |  * Blocked connections that are closed by clients are now expired | ||
|  |    and cleaned up by the heartbeat mechanism. | ||
|  | 
 | ||
|  |    Contributed by Alexey Lebedeff (@binarin). | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#384](https://github.com/rabbitmq/rabbitmq-server/issues/384) | ||
|  | 
 | ||
|  |  * If `RABBITMQ_MNESIA_DIR` was set to a value with a trailing slash, it could prevent | ||
|  |    automatic clustering (and other operations that assume pristine node state) from starting. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#118](https://github.com/rabbitmq/rabbitmq-server/issues/118) | ||
|  | 
 | ||
|  |  * Standard output and error redirection in package scripts not respects `RABBITMQ_LOG_BASE`. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#88](https://github.com/rabbitmq/rabbitmq-server/issues/88) | ||
|  | 
 | ||
|  |  * Properly seed pseudo-random number generator when picking client port | ||
|  | 
 | ||
|  |    Contributed by Alexey Lebedeff (@binarin). | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-common#3](https://github.com/rabbitmq/rabbitmq-common/issues/3) | ||
|  | 
 | ||
|  |  * `RABBITMQ_ALLOW_INPUT` was ignored on Windows | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#490](https://github.com/rabbitmq/rabbitmq-server/issues/490) | ||
|  | 
 | ||
|  | 
 | ||
|  | #### Enhancements
 | ||
|  | 
 | ||
|  |  * Lazy queues. | ||
|  | 
 | ||
|  |    Lazy queues is a new feature that can significantly reduce RAM use of queues | ||
|  |    that can grow very long (e.g. don't have consumers online for hours or day). | ||
|  |    Such queues page messages to disk as they enter the queue. | ||
|  | 
 | ||
|  |    This feature is opt-in and has virtually no overhead for consumers in most cases, | ||
|  |    making throughput for publishers much more even and reducing RAM use. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#351](https://github.com/rabbitmq/rabbitmq-server/issues/351) | ||
|  | 
 | ||
|  |  * Queue synchronisation to mirrors now happens in batches of configurable size, | ||
|  |    4096 messages by default. This can improve sync throughput by an order of magnitude. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#336](https://github.com/rabbitmq/rabbitmq-server/issues/336) | ||
|  | 
 | ||
|  |  * queue leader-to-node distribution is now more flexible: there are several | ||
|  |    strategies to choose from. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#121](https://github.com/rabbitmq/rabbitmq-server/issues/121) | ||
|  | 
 | ||
|  |  * Stronger password encryption algorithm. | ||
|  | 
 | ||
|  |    SHA-256 is the hashing function used by default now, with SHA-512 being an option provided | ||
|  |    out of the box. Support for more options (Scrypt, bcrypt, etc) can be added with plugins. | ||
|  | 
 | ||
|  |    Existing user records will continue using MD5. To force re-hashing/encryption, change | ||
|  |    user password using `rabbitmqctl` or management UI/HTTP API. | ||
|  | 
 | ||
|  |    This should improve FIPS-180 compatibility. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#270](https://github.com/rabbitmq/rabbitmq-server/issues/270) | ||
|  | 
 | ||
|  |  * Lower RAM use thanks to disabled in-process caching. | ||
|  | 
 | ||
|  |    RabbitMQ's in-process read buffers are now disabled by default. This often significantly | ||
|  |    reduces RAM usage at effectively no throughput or latency cost because the OS and file | ||
|  |    system do the same job fairly well. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#228](https://github.com/rabbitmq/rabbitmq-server/issues/228) | ||
|  | 
 | ||
|  |  * [Configurable flow control settings](https://blog.rabbitmq.com/posts/2015/10/new-credit-flow-settings-on-rabbitmq-3-5-5/) | ||
|  | 
 | ||
|  |    Note that larger values will not necessarily lead to higher throughput or lower latency. | ||
|  |    They can also result in larger RAM use and therefore can be dangerous. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#143](https://github.com/rabbitmq/rabbitmq-server/issues/143) | ||
|  | 
 | ||
|  |  * Build system switched to erlang.mk. | ||
|  | 
 | ||
|  |    [erlang.mk](https://github.com/ninenines/erlang.mk) is a modern build system for Erlang | ||
|  |    projects. RabbitMQ and all of its sub-projects have been switched to it. | ||
|  | 
 | ||
|  |    This yields several benefits for RabbitMQ maintainers and plugin developers, | ||
|  |    for example, dependency management for plugins is much more straightforward, build | ||
|  |    times are significantly improved, there is no need to depend on `rabbitmq-server` for most | ||
|  |    plugins. | ||
|  | 
 | ||
|  |    Various 3rd party plugins need to migrate to erlang.mk in order to be built against | ||
|  |    RabbitMQ 3.6.0 (`rabbit_common`). | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#388](https://github.com/rabbitmq/rabbitmq-server/issues/388) | ||
|  | 
 | ||
|  |  * Streaming `rabbitmqctl`: `rabbitmqctl` list operations now stream results | ||
|  |    instead of waiting for the entire result set to arrive. This both improves | ||
|  |    responsiveness and makes it possible to list individual items, including those | ||
|  |    which did not respond in time. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#62](https://github.com/rabbitmq/rabbitmq-server/issues/62) | ||
|  | 
 | ||
|  |  * (More) standard exit codes for command line tools | ||
|  | 
 | ||
|  |    `rabbitmqctl` and `rabbitmq-plugins` now use more standard, or at least distinctive, | ||
|  |    error codes for various failures. | ||
|  | 
 | ||
|  |    Contributed by Alexey Lebedeff (@binarin). | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#396](https://github.com/rabbitmq/rabbitmq-server/issues/396) | ||
|  | 
 | ||
|  |  * Improved log message for channel exceptions. | ||
|  | 
 | ||
|  |    GitHub issues: [rabbitmq-server#416](https://github.com/rabbitmq/rabbitmq-server/issues/416) | ||
|  | 
 | ||
|  |  * Improved log message when a client's TCP connection is closed unexpectedly. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#60](https://github.com/rabbitmq/rabbitmq-server/issues/60) | ||
|  | 
 | ||
|  |  * Improved log message when a client connects to a non-existent vhost | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#320](https://github.com/rabbitmq/rabbitmq-server/issues/320) | ||
|  | 
 | ||
|  |  * Improved log message for `access_refused` connection errors. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#418](https://github.com/rabbitmq/rabbitmq-server/issues/418) | ||
|  | 
 | ||
|  |  * Improved log message for `command_invalid` connection errors. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#419](https://github.com/rabbitmq/rabbitmq-server/issues/419) | ||
|  | 
 | ||
|  |  * More sensible error code when a client connects to a non-existent vhost (or vhost it has | ||
|  |    no permissions for). The code returned is now `530`. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#237](https://github.com/rabbitmq/rabbitmq-server/issues/237) | ||
|  | 
 | ||
|  |  * Memory monitoring interval is now configurable. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#112](https://github.com/rabbitmq/rabbitmq-server/issues/112) | ||
|  | 
 | ||
|  |  * Prevent background GC interval from becoming too large due to backoff. | ||
|  | 
 | ||
|  |    Contributed by Dallas Marlow (@dallasmarlow). | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#100](https://github.com/rabbitmq/rabbitmq-server/issues/100) | ||
|  | 
 | ||
|  |  * Windows installer now supports "unattended" NSIS installs. | ||
|  | 
 | ||
|  |    Contributed by Ryan Zink (@ryanzink). | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#264](https://github.com/rabbitmq/rabbitmq-server/issues/264) | ||
|  | 
 | ||
|  |  * Windows package name now includes RabbitMQ version it provides. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#80](https://github.com/rabbitmq/rabbitmq-server/issues/80) | ||
|  | 
 | ||
|  |  * `kernel.net_ticktime` is now included into `rabbitmqctl status` output. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#63](https://github.com/rabbitmq/rabbitmq-server/issues/63) | ||
|  | 
 | ||
|  |  * `rabbitmqctl` now has a command for setting up free disk space limit at runtime. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#461](https://github.com/rabbitmq/rabbitmq-server/issues/461) | ||
|  | 
 | ||
|  |  * Backup directory location is now mentioned in failed upgrade messages. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#169](https://github.com/rabbitmq/rabbitmq-server/issues/169) | ||
|  | 
 | ||
|  |  * `rabbit_diagnostics:maybe_stuck/0` now includes date and time in its output. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#506](https://github.com/rabbitmq/rabbitmq-server/issues/506) | ||
|  | 
 | ||
|  | #### Other
 | ||
|  | 
 | ||
|  |  * Erlang R16B03 is now required. | ||
|  | 
 | ||
|  |    17.5 or 18.x are recommended. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#250](https://github.com/rabbitmq/rabbitmq-server/issues/250) | ||
|  | 
 | ||
|  |  * Use/support new Erlang/OTP 18 date and time API. | ||
|  | 
 | ||
|  |    Only when it is available, of course. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#233](https://github.com/rabbitmq/rabbitmq-server/issues/233) | ||
|  | 
 | ||
|  |  * RabbitMQ server now supports tracing of credit flow events (e.g. when a process is blocked | ||
|  |    by credit flow). This is currently a compile-time flag aimed to be used in development | ||
|  |    environments. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#137](https://github.com/rabbitmq/rabbitmq-server/issues/137) | ||
|  | 
 | ||
|  | 
 | ||
|  | ### Java Client
 | ||
|  | 
 | ||
|  | #### Enhancements
 | ||
|  | 
 | ||
|  |  * Shutdown threads can use an executor. | ||
|  | 
 | ||
|  |    In environments with very constrainted per-process thread reasources, e.g. basic PaaS plans, | ||
|  |    temporary threads created during connection shutdown may make the app run over the limit. | ||
|  | 
 | ||
|  |    It is now possible to use a user-provided executor for shutdown operations instead. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-java-client#87](https://github.com/rabbitmq/rabbitmq-java-client/issues/87) | ||
|  | 
 | ||
|  |  * ChannelManager now can use an executor. | ||
|  | 
 | ||
|  |    Similar to the above but for `ChannelManager` operations. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-java-client#94](https://github.com/rabbitmq/rabbitmq-java-client/issues/94) | ||
|  | 
 | ||
|  |  * `Channel#consumerCount(string)` is a new convenience method for retrieving number of consumers on a queue. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-java-client#49](https://github.com/rabbitmq/rabbitmq-java-client/issues/49) | ||
|  | 
 | ||
|  |  * `Channel#messageCount(string)` is a new convenience method for retrieving number of messages in a queue. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-java-client#41](https://github.com/rabbitmq/rabbitmq-java-client/issues/41) | ||
|  | 
 | ||
|  |  * `LongString#toString` is part of the API | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-java-client#84](https://github.com/rabbitmq/rabbitmq-java-client/issues/84) | ||
|  | 
 | ||
|  | 
 | ||
|  | ### .NET Client
 | ||
|  | 
 | ||
|  | #### Enhancements
 | ||
|  | 
 | ||
|  |  * Host/address list support is back. Host selection strategy (when recovering a connection) is now pluggable. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-dotnet-client#81](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/81) | ||
|  | 
 | ||
|  |  * Experimental .NET client with Windows RT support is now available. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-dotnet-client#16](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/16) | ||
|  | 
 | ||
|  |  * SQL CLR compatibility. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-dotnet-client#57](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/57) | ||
|  | 
 | ||
|  |  * `IModel#ConsumerCount(string)` is a new convenience method for retrieving number of consumers on a queue. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-dotnet-client#73](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/73) | ||
|  | 
 | ||
|  |  * `IModel#MessageCount(string)` is a new convenience method for retrieving number of messages in a queue. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-dotnet-client#74](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/74) | ||
|  | 
 | ||
|  |  * Continuation timeout is now configurable. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-dotnet-client#80](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/80) | ||
|  | 
 | ||
|  |  * `RabbitMQ.Client.Headers` is a new class that contains constants for commonly used headers. | ||
|  | 
 | ||
|  |    Contributed by Yury Pliner (@Pliner). | ||
|  | 
 | ||
|  |    GitHub issue: [](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/52) | ||
|  | 
 | ||
|  | #### Other
 | ||
|  | 
 | ||
|  |  * .NET 4.5 is now required by the library. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-dotnet-client#134](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/134) | ||
|  | 
 | ||
|  |  * Code examples are removed from the .NET client repository. All examples belong | ||
|  |    to `rabbitmq-tutorials` now. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-dotnet-client#39](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/39) | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | ### Management plugin
 | ||
|  | 
 | ||
|  | #### Enhancements
 | ||
|  | 
 | ||
|  |  * Pagination for connections, channels, exchanges, and queues. | ||
|  | 
 | ||
|  |    Management UI now supports pagination, making the UI much more responsive | ||
|  |    in environments with many connections, queues, etc. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-management#50](https://github.com/rabbitmq/rabbitmq-management/issues/50) | ||
|  | 
 | ||
|  |  * Queue information objects in responses now has a boolean property for queue | ||
|  |    exclusivity instead of a confusing `owner_pid`. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-management#40](https://github.com/rabbitmq/rabbitmq-management/issues/40) | ||
|  | 
 | ||
|  | #### Bug Fixes
 | ||
|  | 
 | ||
|  |  * Connection and channel filtering should respect active vhost. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-management#34](https://github.com/rabbitmq/rabbitmq-management/issues/34) | ||
|  | 
 | ||
|  |  * GET requests to `/api/queues/{vhost}/{name}/get` now accept/provide `application/json` | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-management#46](https://github.com/rabbitmq/rabbitmq-management/issues/46) | ||
|  | 
 | ||
|  | 
 | ||
|  | ### MQTT plugin
 | ||
|  | 
 | ||
|  | #### Enhancements
 | ||
|  | 
 | ||
|  |  * Pluggable retained message stores. Since MQTT 3.1.1 spec doesn't dictate any consistency | ||
|  |    or availability from the store in clustered environments, we only provide an in-memory implementation | ||
|  |    suitable for development environments with a single node. For production environments, plugins that | ||
|  |    provide stores with specific consistency guarantees are expected to be developed. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-mqtt#16](https://github.com/rabbitmq/rabbitmq-mqtt/issues/16) | ||
|  | 
 | ||
|  |  * Default subscription (queue) TTL for non-clean sessions is now 24 hours | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-mqtt#49](https://github.com/rabbitmq/rabbitmq-mqtt/issues/49) | ||
|  | 
 | ||
|  |  * Socket-based authentication plugins now can work with plugins such as MQTT and STOMP | ||
|  |    (those using direct Erlang client). | ||
|  | 
 | ||
|  |    Contributed by Petr Gotthard (@gotthardp). | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#111](https://github.com/rabbitmq/rabbitmq-server/issues/111) | ||
|  | 
 | ||
|  | 
 | ||
|  | ### STOMP plugin
 | ||
|  | 
 | ||
|  | #### Enhancement
 | ||
|  | 
 | ||
|  |  * Control over queue properties. | ||
|  | 
 | ||
|  |    It is now possible to control queue properties (durable, auto-delete, exclusive plus several | ||
|  |    supported x-arguments) for all STOMP destinations. | ||
|  | 
 | ||
|  |    When using durable topics, it is now necessary to configure queue auto-deletion to `false` | ||
|  |    explicitly via a header. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-stomp#24](https://github.com/rabbitmq/rabbitmq-stomp/issues/24) | ||
|  | 
 | ||
|  |  * Socket-based authentication plugins now can work with plugins such as MQTT and STOMP | ||
|  |    (those using direct Erlang client). | ||
|  | 
 | ||
|  |    Contributed by Petr Gotthard (@gotthardp). | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-server#111](https://github.com/rabbitmq/rabbitmq-server/issues/111) | ||
|  | 
 | ||
|  | 
 | ||
|  | ### Web STOMP plugin
 | ||
|  | 
 | ||
|  | #### Enhancements
 | ||
|  | 
 | ||
|  |  * Raw WebSocket endpoint. | ||
|  | 
 | ||
|  |    The plugin now supports a new endpoint, `/ws`, which supports WebSocket connections directly | ||
|  |    without the need to use SockJS. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-web-stomp#17](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/17). | ||
|  | 
 | ||
|  |  * Support for binary data streams. | ||
|  | 
 | ||
|  |    Thanks to the new direct WebSocket support, binary data now can be transferred over | ||
|  |    Web STOMP connections. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-web-stomp#19](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/19) | ||
|  | 
 | ||
|  |  * STOMP heartbeat support. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-web-stomp#15](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/15) | ||
|  | 
 | ||
|  |  * Heartbeats are disabled for SockJS. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-web-stomp#28](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/28) | ||
|  | 
 | ||
|  |  * CORS headers support | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-web-stomp#12](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/12) | ||
|  | 
 | ||
|  |  * Cowboy configuration. | ||
|  | 
 | ||
|  |    Key settings of Cowboy, the HTTP/WebSocket server powering the plugin, now can be fine tuned | ||
|  |    via this plugin. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-web-stomp#22](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/22) | ||
|  | 
 | ||
|  |  * Cowboy is upgraded to `1.0.3` | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-web-stomp#13](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/13) | ||
|  | 
 | ||
|  |  * SockJS is upgraded to `1.0.3`. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-web-stomp#4](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/4) | ||
|  | 
 | ||
|  |  * Queue parameters now can be configured via headers (just like in the regular STOMP plugin). | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-web-stomp#7](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/7) | ||
|  | 
 | ||
|  |  * Address Web STOMP listener binds to now can be configured. | ||
|  |    Previously only port was configurable. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-web-stomp#2](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/2) | ||
|  | 
 | ||
|  | 
 | ||
|  | ### LDAP plugin
 | ||
|  | 
 | ||
|  | #### Enhancements
 | ||
|  | 
 | ||
|  |  * LDAP server connections are now pooled. This significantly reduces | ||
|  |    the load on LDAP servers. | ||
|  | 
 | ||
|  |    Contributed by [LShift](http://www.lshift.net). | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-auth-backend-ldap#1](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/1). | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | ### Sharding plugin
 | ||
|  | 
 | ||
|  | #### Enhancements
 | ||
|  | 
 | ||
|  |  * Routing key policy is now optional. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-sharding#6](https://github.com/rabbitmq/rabbitmq-sharding/issues/6) | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | ### Delayed Message Exchange
 | ||
|  | 
 | ||
|  | #### Enhancement
 | ||
|  | 
 | ||
|  |  * Initial public release. | ||
|  | 
 | ||
|  |    GitHub issue: [rabbitmq-delayed-message-exchange#1](https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/issues/1) |