Just a second...

What was new in Diffusion 5.5?

Diffusion™ 5.5 contains new functions, performance enhancements and bug fixes.

A complete list of the latest updates to Diffusion can be found in the Release Notes available at http://docs.pushtechnology.com/docs/5.9.24/ReleaseNotice.html.

JavaScript® Unified API

A JavaScript version of the Unified API is now available. This API contains both control and standard capabilities.

For version 5.5, the JavaScript Classic API (the API used in version 4 and earlier) is still supported.

For more information, see .

New security model

Diffusion is now secured using a role-based model. Actions that can be performed on the server by client sessions are controlled by permissions. The client session must be assigned a role that has the required permission to be able to perform the action.

For more information, see Role-based authorization.

Console authentication

To access the Diffusion console you must now authenticate with a principal and a password. The information that you can view through the console and the actions you can take are controlled by the permissions assigned to the roles associated with that principal.

For more information, see Diffusion monitoring console.

Session properties

Information about client sessions is now available to Unified API clients using control features. These session properties can be used to filter client sessions.

For more information, see Session properties.

New JMS adapter

A new JMS adapter is available that provides enhanced functionality. The new JMS adapter provides more powerful configuration options and abstracts all JMS-specific behavior. This enables Diffusion clients to interact with data exchanged with a JMS server as Diffusion topics and data, without having to be aware of specifics of the JMS implementation.

The legacy JMS adapter v5.1 is deprecated and will be removed in a future release. We recommend you move to the new version.

For more information, see JMS.

Removal of message fragmentation

The message fragmentation capability has been removed from Diffusion.

Topic message fragmentation was intended to prevent head-of-line blocking by large messages. The API allowed messages for a given topic messages to be delivered out of order, which is incompatible with snapshot/delta processing.

If you applied topic message fragmentation to work around the maximum message size limitations, particularly for large topic load messages, we recommend instead that you increase the maximum message size to accommodate the largest possible application message.

Increasing the maximum message size to support large topic load messages will also require increasing the client input buffer and server output buffer sizes. The peak memory requirement is lower than needed when topic message fragmentation is enabled, but is approximately twice the maximum message size. In a future release, we will improve the buffer handling to allow the maximum message size to exceed the network buffer size.

Pooled input buffers

Changes to how input buffers are allocated improve the performance and memory usage of the Diffusion server.

Input buffers are no longer bound to clients, instead they are shared by all reading tasks. Where previously the number of connected clients defined the number of input buffers, now the maximum number of input buffers is bounded by the configured thread pool size.

The maximum amount of memory used for input buffers is less than the thread pool size multiplied by the input buffer size plus any small memory usage resulting from partial reads.

Non-exclusive updating

The Unified API now provides a simpler way for clients to update topics if the order of updates from different clients is unimportant. This is supported by the Java™, .NET, and JavaScript Unified API clients.

A client can register an update source against a topic. If the topic update source is active, it prevents updates to the topic from any other clients. However, a client can also update a topic without registering as an update source against it. If there is no update source registered against that topic, this non-exclusive update is successful. If multiple clients make non-exclusive updates to a topic, the most recent update is the one applied.

For more information, see .

Windows and OSX support for the C Unified API

We provide libraries for the C Unified API that are compiled for Windows and OSX.

For more information, see C.

Proxy support (.NET Unified API)

Clients that use the .NET Unified API can now connect to the Diffusion server through a proxy. The Unified API enables you to connect through the proxy unauthenticated, with basic authentication, or through any other authentication process by implementing your own challenge handlers.

For more information, see Connecting through an HTTP proxy.

Flow control (.NET Unified API)

The .NET client assemblies can now control the flow of requests from a client to decrease the likelihood of the client's outbound queue or the client queue on the server overflowing and causing the client to be disconnected.

This process happens automatically when the client detects conditions that might cause a queue overflow and increases the reliability of the .NET client.