Release 8.0.0

Enhancements

  • Introducing new Accounting Swiftlet as part of all standard SwiftMQ distributions. The Accounting Swiftlet collects comprehensive and exact data about resource usage and transfer volumes which can be used for billing and statistic. More ...
  • New Connector 1.6 (JavaEE 1.6) Resource Adapter. More ...
  • Administration: New CLI Message Interface to manage a SwiftMQ Universal Router via basic JMS request/reply and also via eMail. More ...
  • SwiftMQ Explorer: New optional command line parameters to avoid "Connect" dialog. More ...
  • SwiftMQ Explorer: Last state of the Navigator tree nodes are now restored after reconnect.
  • JavaMail Bridge Swiftlet, Outbound Bridges: Reuse of SMTP transport with/without keepalive is now configurable. More ...
  • JavaMail Bridge Swiftlet, Outbound Bridges: JavaMail properties can now be defined per outbound bridge. More ...
  • JavaMail Bridge Swiftlet, Outbound Bridges: New attribute "send-multipart-text-as-html" to send the mail body as HTML. More ...
  • JavaMail Bridge Swiftlet, Inbound Bridges: JavaMail properties can now be defined per inbound bridge. More ...
  • JMS Client: New system property "swiftmq.jms.persistent.asyncsend" to send nontransacted persistent messages asynchronously (decrease reliability but may double persistent message throughput). More ...
  • JMS Client: New system property "swiftmq.socket.sotimeout" to set socket timeout. More here and here.
  • JMS Swiftlet: New JMS listener based connection limit via new JMS listener attribute "max-connections" to enable clients to connect via other JMS listeners even if a connection limit of another listener has been reached. More ...
  • Management Swiftlet: Connect/disconnect of SwiftMQ admin tools are now being logged to the info.log. Configurable via new attribute "admintool-connect-logging-enabled" (default is true). More ...
  • Queue Manager Swiftlet: New queue usage attributes msg-consume-rate, msg-produce-rate, total-consumed, total-produced. New CLI reset command and new Queue Reset job.
  • Scheduler Swiftlet: New property JMS_SWIFTMQ_SCHEDULER_MAY_EXPIRE_WHILE_ROUTER_DOWN for "at" message schedules to ensure that a message job is executed even if it has expired while the router was shut down. More ...
  • New CLIHelper Spring Bean and new documentation chapter "Spring Framework Integration". More ...

Bugfixes

  • JMS Client: Keepalive timer isn't stopped after disconnect due to keepalive=0 and client continuously reconnect in an infinite loop. More ...
  • JMS Client: Transparent reconnect, re-initialize internal retry each time a protocol handshake was successfully done.
  • JMS Client: Automatically assigned client id not updated in message producers (TopicPublisher) during reconnect so noLocal flag won't work anymore (local messages will be received). [internal 7.6.1 patch]
  • JMS Client, JMS Swiftlet: Fixed some bugs concerning reconnect with a large number of connections (10K) ("req == null", "sem == null", ClassCastExceptions, NPE in JMS Swiftlet during shutdown). [internal 7.6.2 patch]
  • JMS Client: No internal reconnect if reconnect is disabled. [internal 7.6.3 patch]
  • JMS Client: IndexOutOfBoundsException in duplicate log while creating new consumer.
  • JMS Swiftlet (HA): producer.close() on temp queues must not throw exception during reconnect but just return success to work under HA. More ...
  • Network NIO Swiftlet: JMS client's send/publish method return is delayed until the next keepalive message is sent from the client if the JMS listener's router-input-buffer-size + router-input-extend-size is smaller than message size (data isn't completely read and remaining read is triggered by the next read-ready event on that channel).
  • Network NIO Swiftlet: ClosedChannelException occured while reconnecting with a large number of connections (10K). [internal 7.6.3 patch]
  • JDBC Store Swiftlet, HA build (under the HA distribution's "opt" directory): ${release} wasn't substituted.
  • cli/clis scripts: dom4j-full.jar missing in classpath.
  • System property "swiftmq.reconnect.max.internal.retry.count" documented. More ...

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