Upgrading from version 5.7 to version 5.8
Consider the following information when upgrading from Diffusion™ version 5.7 to version 5.8.
Upgrading your applications
- Server-side components
Recompile all Java™ application components that are deployed to the Diffusion server, such as publishers and authorization handlers, against the new version diffusion.jar file. This file is located in the lib directory of your new Diffusion server installation.
Some features that your Java application components might use have been removed or deprecated. Pay attention to new deprecation warnings and compilation failures that occur during recompilation and review the API changes information in the following section to see if these changes affect your applications.
- Clients
You can choose not to recompile your client applications and continue to use client libraries from a previous release. If you choose to use client libraries from a previous release, ensure that the libraries are compatible with the new server. For more information, see Interoperability.
You can choose to upgrade your client applications to use the new client libraries. To do this, recompile the client applications against the client libraries located in the clients directory of your new Diffusion server installation and repackage your client application with the new library.
Alternatively, the Java library is available in the Push Public Maven Repository and the JavaScript® library from NPM.
Some features that your client applications might use have been removed or deprecated. Review the API changes information in the following section to see if these changes affect your applications.
API changes
- The release notes provided online at http://docs.pushtechnology.com/docs/5.9.24/ReleaseNotice.html
- The API documentation located at http://docs.pushtechnology.com/5.8
API affected | Removed feature | Suggested alternative |
---|---|---|
Java Classic API | QueuesConfig | This configuration can now only be done on the Diffusion server |
MBeans | MultiplexerLatencyNotification in the Multiplexer MBean and PermissionNotification in the AuthorisationManager MBean | None |
API affected | Deprecated feature | Suggested alternative |
---|---|---|
Configuration API | setPriority and getPriority methods in ThreadPoolConfig | None. |
Configuration API | setThreadPriority and getThreadPriority methods in MultiplexerConfig | None |
Configuration API | ThreadPoolListenerConfig class | None |
Configuration API | setThreadPoolListener, getThreadPoolListener, and removeThreadPoolListener methods in ThreadPoolConfig | None. These methods are now no-ops. |
Java Classic API | getInboundThreadPool method in the ThreadService class | None |
- For JavaScript, Android™, and Java clients that register session properties listeners, the Diffusion server can aggregate the initial batch of notifications into a single message. This decreases the risk of overflow in the message queue that is used to queue messages to be sent to the client. The client session registering the session properties listener might need to use a larger maximum message size to accommodate this message.
- In Android, Java, and .NET, a session properties listener now receives a notification when a client becomes disconnected from the Diffusion server.
- In Android, Java, and .NET, a session properties listener now receives a notification when a client fails over connection to another Diffusion server.
- Clients can subscribe to a routing topic before a routing subscription handler is added. This subscription is now evaluated when a handler is added.
- Publishers no longer receive not acknowledged notifications for messages sent to Unified API clients.
Upgrading your server installation
At release 5.8, the Diffusion server is tested and supported on Java HotSpot™ Development Kit 8 (latest update).
Java 7 is not supported.
- Use the graphical or headless installer to install the new version of Diffusion.
For more information, see Installing the Diffusion server.
- You can copy your existing license file from your previous installation to the etc directory of your new installation.
- You can copy most of your existing configuration files from the
etc directory of your previous installation to the
etc directory of your new installation. When you
do, consider making the following changes:
- In the Server.xml file remove the thread-priority elements for all types of thread. This element is deprecated and a no-op.
- In the Server.xml file remove the keep-alive and priority elements for thread pool definitions. These elements are deprecated and a no-op.
- In the WebServer.xml file ensure that the value
of message-sequence-timeout is less that 1 hour.
Values greater than 1 hour (3600000ms) cause a warning to be logged
and the timeout is set to one hour.
This parameter is used to re-order out-of-order messages received over separate HTTP connections opened by client browsers. It is rarely necessary to set this to more than a few tens of seconds.
Behavior changes at the Diffusion server
- You can no longer set a thread priority for threads.
- You can no longer set a priority or keep-alive time for a thread pool.
- Configuring max-size for a thread pool is now optional. If no value is define, the max-size defaults to the core-size.
- You can no longer set the message sequence timeout to more that 1 hour.
This page last modified: 2016/10/05