Universal Messaging 10.11 | Release Notes | What's New in Universal Messaging 10.3
 
What's New in Universal Messaging 10.3
Universal Messaging 10.3 is the successor of Universal Messaging 10.2.
Universal Messaging 10.3 includes new features, enhancements, and changes as described in the following topics.
New features in v10.3
The following Universal Messaging features have been added in Universal Messaging 10.3:
*Client System Properties for Secure Communication
The Universal Messaging client system properties for secure communication configure only the connections to Universal Messaging realms and have no impact on the connections established to other endpoints, unlike the standard Java Secure Socket Extension (JSSE) system properties. The following Universal Messaging client system properties have been added:
*com.softwareag.um.client.ssl.certificate_alias
*com.softwareag.um.client.ssl.enabled_ciphers
*com.softwareag.um.client.ssl.keystore_password
*com.softwareag.um.client.ssl.keystore_path
*com.softwareag.um.client.ssl.ssl_protocol
*com.softwareag.um.client.ssl.truststore_password
*com.softwareag.um.client.ssl.truststore_path
The properties are described in the section Using the Universal Messaging Client System Properties for Secure Communication in the Concepts guide.
*Client configuration properties
The following client configuration parameters have been added:
*com.softwareag.um.client.follow_the_master
*com.softwareag.um.client.network_io_buffer_size
*com.softwareag.um.client.session_disable_reconnect
*com.softwareag.um.client.write_handler
The parameters are described in the section Client Parameters in the Concepts guide.
*Realm configuration properties for disk free space
The following realm server startup parameters are now documented. They allow the Universal Messaging server to take action if the amount of free disk space drops below a threshold level.
*DISK_USAGE_FREE_THRESHOLD
*DISK_USAGE_SCAN_ENABLE
*DISK_USAGE_SCAN_INTERVAL
These parameters were available in the previous product release, but were not documented.
The parameters are described in the section Server Parameters in the Concepts guide.
*Support for Configuring a Universal Messaging SHM Port in Command Central
For information, see the sections Ports and SHM Ports.
*Support for Secure Communication Between Command Central and Universal Messaging
Command Central now connects automatically to a Universal Messaging server that listens only on an nhps or nsps interface. Command Central uses this interface to establish the connection, as well as the truststore and keystore configured in the interface.
In addition, you can provide custom truststore and keystore files by configuring JSSE system properties or Universal Messaging client system properties.
For information, see the section Securing Communication Between Command Central and Universal Messaging.
Changed features in v10.3
The following Universal Messaging features already available in the previous product release have been changed:
*C++ libraries
The following changes relating to the C++ libraries that Universal Messaging provides have taken place:
*The C++ libraries for Universal Messaging on Windows are now compiled with Visual Studio 2015.
*The C++ libraries for Universal Messaging on Linux are now compiled with gcc compiler version 4.8.5 20150623 (Red Hat 4.8.5-4).
*The C++ libraries for Universal Messaging utilize OpenSSL libraries which have now been upgraded to 1.1.0h (the previous version was 1.0.2l).
*The C++ libraries for Universal Messaging utilize POCO libraries which have now been upgraded to 1.9.0 (previous version was 1.6.3).
Should you experience any problems with the new version of the C++ client libraries for Universal Messaging, first consider recompiling your client applications against the new version of the libraries/compilers.
*Cleanup of shared durable stores at server startup
Occasionally, a shared durable store of type "Shared-Queued" can continue to exist after the shared durable subscription for which the store was created has been deleted. To ensure that such "orphaned" stores are removed, the Universal Messaging realm server checks for orphaned stores at each restart and deletes them. This can cause a short delay during the startup procedure of the realm server.
*Configuration of the Python API
The procedure for configuring the Python API for Universal Messaging has been modified.
*Editing JNDI Settings for connection factories
The method for editing JNDI settings for a Universal Messaging realm has changed. Now, the JNDI tab for a selected realm in the Enterprise Manager allows you to view and edit existing JNDI settings of connection factories. You can also add your own optional JNDI key, value and data type settings.
The previous method for editing JNDI settings required you to do a channel snoop on the /naming/defaultContext channel and to use an "edit and republish" mechanism in the snoop panel. You can still use channel snoop to view the JNDI settings, but the "edit and republish" mechanism for the JNDI settings has been disabled (you can still enter new JNDI settings in the panel, but they will be ignored).
Note that the "edit and republish" mechanism of channel snoop still works as in previous product versions for all channel events except for events on the /naming/defaultContext channel that represent JNDI settings.
For related information on the new feature, see the section Integration with JNDI in the Administration Guide.
*Format of timestamp field in log file entries
The format of the timestamp in log file entries has been changed. Previously, the time of day was shown as hours, minutes, seconds, in the format hh:mm:ss. Now, the time is shown as hh:mm:ss.ttt, where ttt represents thousandths of a second.
See the section The Enterprise Manager Logs Panel for examples.
*Google Protocol Buffers
The Google Protocol Buffer library that Universal Messaging 10.3 uses has been updated from version 2.5.0 to version 3.6.0. The 3.6.0 version of Google protocol buffers supports both the proto2 language syntax and the new proto3 language syntax. The use of the new version brings Universal Messaging into line with other Software AG products that use Google Protocol Buffers.
There is one known restriction: Universal Messaging v10.3 does not support server-side filtering of events based on the "Map" container type that is available with the new Google protocol buffers.
*JVM behavior on Out of Memory Exception
In previous product releases, the Java client library triggered a JVM exit when an out of memory exception (OOME) occurred. In some updated versions of previous product releases, the client configuration parameter StopJVMonOOM was introduced to allow this behavior to be configurable.
Now, in v10.3 the JVM never exits when an out of memory exception (OOME) occurs. Instead, the client library just logs the error, and the current session used by the client is automatically closed.
Also, in v10.3 the client parameter StopJVMonOOM has been removed again, since the V10.3 behavior is not configurable - it is equivalent to a setting of " StopJVMonOOM=false" in v10.2, meaning that the JVM will not exit if an OOME occurs.
*Limitations with Horizontal Scalability
The current implementation of Horizontal Scalability (HS) has some limitations when dealing with Universal Messaging realm servers that went offline during HS operation and are now online again. Similar restrictions apply if a realm server was not available at the start of the HS operation but has now come online.
For details of these limitations, see the section Usage Notes for Horizontal Scalability in the Concepts guide.
*Temporary limitation on window size of indexed durable subscriptions
For the initial release of v10.3, there is a limitation regarding the number of events per window that can be returned to clients that use durable subscriptions. This limitation is expected to be removed in later updates of v10.3. The limitation is as follows:
By default, the iterator window size of indexed durable subscriptions is currently set to 1, even if you have specified a value of more than 1 for the window size.
This applies to the following types of durable subscription:
*Serial
*Shared
*Shared-Queued
The lock can be overridden by setting the JVM argument globalIndexedIteratorWindowSize to "true". The default value of this parameter is "false".
For related information, see the section Using Durable Subscriptions with Multiple Clients in the Concepts guide.
Deprecated features in v10.3
The following Universal Messaging features are now deprecated in Universal Messaging 10.3. Features listed as deprecated are still available in the product, but will be removed in a future release.
*Client API
In the client API, nChannelAttributes.getFullName() has been deprecated. Users of this method should use nChannelAttributes.getName() instead.
*Client configuration properties
The following client configuration properties are deprecated:
*CAKEYSTORE
*CAKEYSTOREPASSWD
*CKEYSTORE
*CKEYSTOREPASSWD
The parameters are described in the section Client Parameters in the Concepts guide.
*Creating non-clustered resources on clustered realm servers
The ability to create and use non-clustered resources on realm servers that are part of a cluster is deprecated.
For example, channels of type "transient" are not intended to be used in a clustered environment, so it will no longer be possible to create a channel of type "transient" on a realm server that is part of a cluster.
In the current product release it is possible to create such a non-clustered resource on a clustered realm server, but the behavior is unpredictable.
*Priority and Shared-Queued Durable Subscriptions
The durable subscription types Priority and Shared-Queued are deprecated.
For future applications we suggest you use the durable type Shared instead of Shared-Queued, and the durable type Serial instead of Priority.
An overview of the durable subscription types is available in the section Types of Durable Subscription in the Concepts guide.
*Realm configuration properties
The following realm configuration properties are deprecated:
*PriorityReadSpinLockMaxConnections
*PriorityReadSpinLockTime
*PriorityReadType
The realm configuration properties are described in the section Realm Configuration in the Administration Guide.
*Storage properties of channels and queues
The following storage properties of channels and queues are deprecated:
*Enable Read Buffering
*Read Buffer Size
The storage properties are described in the section Storage Properties of Channels and Queues in the Concepts guide.
Removed Features in v10.3
The following Universal Messaging features have been removed in Universal Messaging 10.3:
*The EXIT_ON_FREE_SPACE_ERROR server parameter has been removed in Universal Messaging version 10.1 and higher.
*Client configuration parameters
The following client configuration parameters have been removed:
*StopJVMonOOM
See the item JVM behavior on Out of Memory Exception in these Release Notes for related information.
The parameters are described in the section Client Parameters in the Concepts guide.
*Legacy (i.e. global) protocol buffers
Support for configuring "legacy" (i.e. global) Google protocol buffers has been removed. In previous product versions, protobuf descriptors could be kept in a global directory, rather than setting them on each channel. Now, support for using a global directory has been removed, and only channel-level protocol buffers are supported.
For this reason, several realm configuration parameters relating to protocol buffers have also been removed.
The option Protobuf Config: FilterProtobufEvents has been removed, since filtering of protobuf events is the most natural behavior and now always occurs (previously, filtering was optional). If you do not want filtering, you should not configure protobuf descriptors for the channel.
See the summary of the removed Protobuf Config properties in the list below.
*Proxy forwarding
Support for proxy forwarding has been removed. The corresponding realm configuration parameters in the category "Proxy Forward Config" have been removed.
*Realm configuration properties
The following list shows the realm configuration properties that are no longer available. The names are given in the form <category>: <property>, where <category> is the category to which the property belongs, and <property> is the property name. Property names are unique within a category, but the same property name can be present in different categories. Some properties are annotated with (*1), (*2) etc. There are references to notes that are described at the end of the list.
*Cluster Config : BufferSize (*3)
*Cluster Config: EnableSites (*2)
*Cluster Config: FilterEventsDuringRecovery (*2)
*Cluster Config: SecureHandshake (*2)
*Cluster Config: SeparateLog
Note: the spelling "SeperateLog" was used originally.
*Cluster Config: TransactionSync (*2)
*Connection Config : BufferQueueSize (*3)
*Connection Config : EnablePriorityMessaging (*3)
*Connection Config : HandshakeTimeout (*3)
*Connection Config : whPeakTrailDelay (*3)
*Connection Config: MaxBufferSizeClientSideCheck (*2)
*Connection Config: NIOSelectArray
After the removal of this property, UM will continue to behave as if this property were set to "false".
*Data Stream Config : FanoutTaskQueueSize (*3)
*Data Stream Config : MaxSessionIdSize (*3)
*Data Stream Config : ParallelFanoutThreshold (*3)
*Data Stream Config: FanoutTraversalType
After the removal of this property, UM will continue to behave as if this property were set to "in-order traversal".
*Event Storage : AutoMaintainOnFileLimit (*3)
*Event Storage : EnableStoreReadBuffering (*3)
*Event Storage: AutoMaintainSystemStores (*2)
*Event Storage: EnableBufferingKey (*2)
*Fanout Values : MaximumDelayInWrite (*3)
*Fanout Values : ParallelThreshold (*3)
*Fanout Values : ParallelUseGlobalPool (*3)
*Fanout Values : RoundRobinDelivery (*3)
*Fanout Values: ParallelBatchSize (*3)
*Global Values : ServerStateFlush (*3)
*Global Values : StatusUpdateTime (*3)
*Global Values: NanoDelayBase
After the removal of this property, UM will continue to behave as if the default value of this property (100000) were still in effect.
*Global Values: ServerTime (*2)
*Inter-Realm Comms Config: WriteDelayOnFail (*2)
*Inter-Realm Comms Config: ZoneDefaultCanRecv (*2)
*Inter-Realm Comms Config: ZoneDefaultCanSend (*2)
*JVM Management: AutoThreadDumpOnExit (*2)
*JVM Management: ExitOnMemoryError (*2)
*Logging Config: DisplayPackageName
*Logging Config: customDebugTag (*1)
*Logging Config: customErrorTag (*1)
*Logging Config: customFatalTag (*1)
*Logging Config: customInfoTag (*1)
*Logging Config: customLogTag (*1)
*Logging Config: customTraceTag (*1)
*Logging Config: customWarnTag (*1)
*Protobuf Config : MaximumProtobufBuilders
*Protobuf Config : MinimumProtobufBuilders
*Protobuf Config : ProtobufDescriptorsInputDir
*Protobuf Config : ProtobufDescriptorsOutputDir
*Protobuf Config : UpdateDescriptorsInterval
*Protobuf Config : UseChannelLevelProtobufCache
*Protobuf Config: FilterProtobufEvents (*2)
*Protocol AMQP Config : AllowUserTransformation (*3)
*Protocol MQTT Config : DisconnectOnSecurityException (*3)
*Protocol MQTT Config : Timeout (*3)
*Proxy Forward Config: BufferSize
*Proxy Forward Config: FlushTimeout
Notes:
**1: The functionality of custom tags has been removed, so the properties have been removed accordingly.
**2: After the removal of this property, UM will continue to behave as if the default value of this property ("true") were still in effect.
**3: This property was made available in previous releases in preparation for possible future use, but its value was ignored, therefore the behavior of UM is not affected by the removal of this property.
If you exported a realm configuration containing any of these removed properties to an XML file in a previous product version, the XML file can still be imported into a newer realm, but in this case the properties will be ignored, regardless of the value that they were set to.
*SOAP Plugin
The SOAP server plugin has been removed.
This plugin was previously described in the section Plugins of the Enterprise Manager in the Administration Guide.