Universal Messaging 10.15 | Release Notes | What's New In Universal Messaging 10.1
 
What's New In Universal Messaging 10.1
Universal Messaging 10.1 is the successor of Universal Messaging 10.0.
Universal Messaging 10.1 includes new features, enhancements, and changes as described in the following topics.
Updated and New Functionality in the client API for C#
*Shared durable subscriptions now supported in client API for C#
The client API for C# now supports shared durable subscriptions. The client API for C# functionality used in previous product releases for creating named objects and named objects with priority has now been deprecated.
The new API provides different public methods for interaction. For operations like creating, retrieving, deleting or unbinding a durable, the nDurableManager must be used. Every channel has a durable manager associated with it.
For information on how to use the new functionality, refer to the topic Using Durable Objects in the C# section of the Developer Guide. See also the section Durable Subscriptions in the Concepts guide.
*Serial durable subscriptions now supported in client API for C#
The client API for C# now supports serial durable subscriptions.
With a serial durable subscription, multiple subscribers can hold a subscription to the same named object and all the subscribers will process events in a serial manner.
For information about the new functionality, refer to the topic Using Durable Objects in the C# section of the Developer Guide. See also the section Durable Subscriptions in the Concepts guide.
*New public interface for committing and rolling back events
A new public interface has been added for committing and rolling back events. The methods are defined for the nDurable instance and the usage of the old API, e.g. calling ack() or rollback() on the received event's nConsumeEvent object, is not recommended since it does not fully support individual acknowledging and rolling back. To be able to apply these operations on a single event and not only on consecutive event IDs is a significant importance for the shared types.
*Basic Authentication now supported in C# client API
It is now possible to use SASL (e.g. plain text) authentication for the client API for C#. Previously, this functionality was only available using the client API for Java.
For details, refer to the section Basic Authentication in the C# section of the Developer Guide.
Serial durable subscriptions now supported in client API for Java and as an extension to the API for JMS
The client API for Java now supports serial durable subscriptions. The same functionality has been added as an extension to the Universal Messaging API for JMS.
With a serial durable subscription, multiple subscribers can hold a subscription to the same named object, and all the subscribers will process events in a serial manner.
For information about the new functionality, refer to the topic Using Durable Subscriptions in the Java section of the Developer Guide. Refer also to the section Durable Subscriptions in the Concepts guide.
Periodic logging of the realm server status
The logging feature has been extended to allow the status of the realm server to be reported in the server log at regular intervals. The status includes metrics such as the amount of memory currently in use for active events, the amount of disk space in use, CPU load, number of active connections, total bytes sent and received.
For details, see the section Periodic Logging of Server Status in the Concepts guide.
New and Enhanced Command Central Capabilities
Command Central can now be used to configure Universal Messaging zones and security groups.
Command Central now supports enhanced port configuration options.
You can now configure round-robin JMS Connection Factories using Command Central, allowing messages to be distributed evenly across multiple Universal Messaging realms or clusters. For more information, see the Universal Messaging Administration Guide.
These capabilities can be accessed using the Command Central web user interface, command-line interface, REST API, and composite templates.
Changed handling of missing operator in filter expression
In v10.0 it was permissible to omit a logical operator between two selector clauses in a filter expression. In such cases, the omitted operator was treated implicitly as an "AND" operator. For example, instead of the correct form:
( Item1 = 'ABC' ) AND ( Item2 in ( 'Invoicing', 'Pending' ) )
it was possible to state:
( Item1 = 'ABC' ) ( Item2 in ( 'Invoicing', 'Pending' ) )
In 10.1, omitting the logical operator will be flagged as an error. Therefore, when you upgrade to 10.1, ensure that you modify your filter expressions accordingly.
Pause Publishing
The new pause publishing feature allows all client publishing to the server to be paused, across channels, queues and data groups. This pause will not affect the administration API, inter-cluster communication or joins.
The feature is activated by setting the server configuration property PauseServerPublishing to true. Then, clients trying to publish or commit will receive nPublishPausedException. Exception handlers from prior to the current product version will handle this as nSessionPausedException, which the new nPublishPausedException extends.
Information about this feature is available in the section Pause Publishing in the Concepts guide.
If client applications using APIs from previous product versions are used to publish events to a v10.1 server, the following changes will be observed:
Old API (prior to 10.1)
Behavior publishing to a v10.1 server
Native API for Java
If a client API from a previous product version is used to connect to a 10.1 server, Java native clients will receive nBaseClientException instead of nPublishPausedException.
API for JMS
The behavior here is the same as for 10.1, with the difference that the root JMSException will be nBaseClientException instead of nPublishPausedException.
API for C++/C#
The APIs for C++ and C# will throw nUnexpectedResponseException when publishing is paused.
Updates for MQTT
Configuration Properties for MQTT
A new set of realm configuration properties for MQTT has been added.
For the list of MQTT configuration properties see the topic Realm Configuration in the Enterprise Manager section of the Administration Guide.
Support for clustered channels
MQTT support for clustered channels has been added.
General improvements
Non-functional aspects such as performance, availability and scalability have been improved.
Server JAAS Authentication with Software AG Security infrastructure component
Universal Messaging can now use the Software AG Security Infrastructure component (SIN) to provide server JAAS authentication capabilities. The SIN component provides a variety of options for using different authentication back-ends and implementing flexible authentication scenarios.
The SIN module is now the default LDAP module for use with Universal Messaging.
SIN modules are delivered with the Universal Messaging distribution and are available on the Universal Messaging server classpath.
For details, see the section Security in the Concepts guide.
Configuring Universal Messaging for use with IBM WebSphere Application Server
The Universal Messaging installation contains a product-specific generic resource adapter for JMS. Universal Messaging can be configured to work with IBM WebSphere Application Server via this adapter.
For details, see the section Resource Adapter for JMS in the Developer Guide
Microsoft Edge is a supported Web browser for Javascript Communication Drivers
The list of web browsers that are supported for the Javascript communication drivers has been extended to include Microsoft Edge for several of the drivers.
For details, see the section Communication Drivers in the Developer Guide.
Corrected DLL names in the product documentation
Some sections of the documentation referred to the DLL files "Nirvana DotNet.dll" and "Nirvana Silverlight.dll" by the wrong names "Universal Messaging DotNet.dll" and "Universal Messaging Silverlight.dll" respectively. These have been corrected.
These DLLs are mentioned in the C# and VBA sections of the Developer Guide.
New Java system property "Nirvana.sasl.client.enablePrehash"
The new Java system property Nirvana.sasl.client.enablePrehash specifies whether to prehash the supplied password when using the CRAM-MD5 or Digest-MD5 mechanisms.
For details, see the section Client-side Authentication APIs in the Java section of the Developer Guide.
Removed and deprecated features in 10.1
The following Universal Messaging features are now deprecated or have been removed in Universal Messaging 10.1:
*Deprecated Client API Support for Microsoft Silverlight
The Universal Messaging client API for Microsoft Silverlight is deprecated and will be removed from the product distribution in the next official release.
*Removed realm configuration parameter "QueuedSharedDurableFilterBound"
The realm configuration parameter QueuedSharedDurableFilterBound, which was introduced in Universal Messaging 10.0, has been removed. This boolean parameter specified whether or not to bind a shared durable to the event filter of its latest user.
The behavior in v10.1 without this parameter is the same as the 10.0 behavior when this parameter was set to "true", namely: once the shared durable is bound to a filter, any subsequent subscriptions that mismatch the filter will replace the filter and an asynchronous exception will be thrown to existing subscribers.
*Removed realm configuration parameter "OutputBlockSize"
The realm configuration parameter OutputBlockSize has been removed.
*Deprecated methods in C# Client API
The methods ack() and rollback() on the nConsumeEvent object of the received event is deprecated.
See the section Updated and New Functionality in the client API for C# above for information on the new API features for committing and rolling back events.
*Deprecated Client API Support for Windows Phone
The Universal Messaging client API for Windows Phone is deprecated and will be removed from the product distribution in the next official release.
*Deprecated Universal Messaging Directory Backend Authentication
The Internal User Repository and LDAP directory backend providers that were in use in Universal Messaging v10.0 for authentication have been deprecated. The directory backend providers are being replaced by the new functionality described in the section Server JAAS Authentication with Software AG Security infrastructure component above.
*Deprecated Administration APIs for C# and C++
The Administration APIs for C# and C++ are deprecated and will be removed from the product distribution in the next official release.