Release 9.0.0

Enhancements

  • Introducing the new AMQP Swiftlet as part of all standard SwiftMQ distributions. The AMQP Swiftlet provides a full integrated AMQP 1.0 broker implementation including SASL authentication and SSL/TLS. More ...
  • Introducing the new AMQP Client which provides a AMQP 1.0 client implementation and can be used free of charge with SwiftMQ or other AMQP 1.0 brokers. More ...
  • JavaMail Bridge Swiftlet: Introducing new Mail logfiles for in- and outbound bridges. More ...
  • JavaMail Bridge Swiftlet: Outbound bridges support now transfer encoding per attachment. More ...
  • Log Swiftlet: Can now handle handle custom log files (log sinks).
  • JDBC Authentication Swiftlet: Added transparent reconnect of the JDBC authentication connection.
  • SNMP Management Swiftlet: getoid utility can now be used with username/password authentication.
  • Routing Swiftlet: Added optional on-the-fly compression.
  • SwiftMQ Explorer: Message "move" between queues is now possible out of the Message Viewer frame. More ...

Changes

  • XA Resource Manager Swiftlet: Only reschedule the timer for transaction timeouts if the new timeout if different from the previous.
  • Store Swiftlet: Optimized buffer size for transaction log.
  • JMS message: Store iterator for getPropertyNames() into a threadlocal to enable concurrent threads to iterate through the props of a single message instance.

Bugfixes

  • Queue Manager Swiftlet: Predicate driven jobs like "Queue Cleanup DLQ" with a predicate of "%$%" try to run on queues with "tpc$" prefix (not allowed because these are topics) and create a memory leak.
  • Queue Manager Swiftlet: Result for message viewer must contain all JMSX properties. Previously it contained only JMSXUserID and JMSXDeliveryCount.
  • HAController Swiftlet: Spool directory name does not respect "absolute:" prefix.
  • Network NIO Swiftlet: SSL Handshake may hang sometimes.
  • Mgmt Swiftlet: NullPointerException on shutdown or lease timeout of an admin tool terminates the management listener and admin tools weren't able to connect anymore.
  • JMS Swiftlet/Client: Small memory leak when creating/closing sessions on the same connection over a long period of time.
  • JMS Client: receiveNoWait() had always a delay of 1000 ms if no messages were available.
  • JMS Client: message.acknowledge() on a session without mode CLIENT_ACK must throw a IllegalStateException.

Compatibility

  • 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.0.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

or

        ./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.