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
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
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.
Support for Configuring a Universal Messaging SHM Port in Command Central 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.
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.
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.
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".
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 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.
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 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.
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.