Release 9.1.0


  • Support of AMQP version 0.9.1, "direct" exchanges (point-to-point). More ...
  • AMQP 1.0: Link recovery and custom delivery tags added. More ... (scroll to bottom)
  • AMQP 1.0: Sending of messages is now fully asynchronous, link close ensures finish of settlement. More ...
  • JMS over AMQP 1.0: Full support of the Apache Qpid JMS client (will be part of Qpid 0.17).


  • Queue Manager Swiftlet: Cluster metric broadcast messages on topic "swiftmq.cluster" now have an expiration of 2 x cluster-metric-interval to avoid flooding with messages when routers are temporarily disconnected.
  • AMQP 1.0 Client API: link.detach(boolean) changed to link.close(). More ...


  • SwiftMQ Explorer, Message Viewer: Selected row is wrong after sorting via column header.
  • JMS Client: Stream/MapMessage, some type conversion were not possibile.
  • JMS Client: MapMessage: must be possible to set null as String value.
  • JMS Client: BytesMessage.getBodyLength must throw MessageNotReadableException in WRITE-ONLY mode.
  • JMS Client: TopicSubscriber.getTopic() must throw an IllegalStateException if the TopicSubscriber is closed.
  • JMS Client: QueueReceiver.getQueue() must throw an IllegalStateException if the QueueReceiver is closed.
  • JMS Client: Temp destinations must not be deleted when there are active consumers.
  • JMS Client: JMSMessageID will change after sending the same message out of onMessage.
  • JMS Client: Message must be marked as JMSRedelivered after Session.recover() is called out of onMessage() on an auto-ack session.
  • JMS Client: Consumer on a temp destination can only be created from a session that created the temp destination.
  • JMS Message Selector: Selector LIKE, "12%3" must match "12333".
  • JMS Message Selector: Keywords must not be used as a fieldname.


  • Configuration compatible with previous releases: 4.5.0 (routerconfig.xml will be converted on the first startup)
  • Class compatible with previous releases: 5.1.0 (see release notes of release 5.1.0).
  • Message compatible with previous releases: 4.0.0
  • Store compatible with previous releases: 4.0.0
  • Protocol compatible with previous releases: 4.0.0

How to Upgrade

SwiftMQ 9.1.0 defines two AMQP listeners on port 5672 (plain) and 5671 (SSL/TLS) to be able to run AMQP out of the box. They will also be added as part of the rolling upgrade process as specified on the links below. If you don't need these listeners, you may either delete them *after* the upgrade or use the "NOAMQP" option on the new release *during* the upgrade on the first start of the router start script of the new release, e.g:

        ./smqr1 NOAMQP


        ./smqr1_replicated NOAMQP

The option work on HA and non-HA releases but only on the very first start where the config files will be upgraded.