Client Parameters
The Universal Messaging client API supports a variety of parameters that you can use to change the behavior of the client.
You specify the parameters in the command line of any Universal Messaging client application by prefacing the name of the parameter by -D. For example, to set the value of the parameter LOGLEVEL to 4 for a given client application, specify -DLOGLEVEL=4 as a parameter in the command line of the client application.
The following list describes the parameters and their typical values. All parameters are optional, unless otherwise stated.
CAKEYSTORE (deprecated)
Shorthand for javax.net.ssl.trustStore.
CAKEYSTOREPASSWD (deprecated)
Shorthand for javax.net.ssl.trustStorePassword.
CKEYSTORE (deprecated)
Shorthand for javax.net.ssl.keyStore.
CKEYSTOREPASSWD (deprecated)
Shorthand for javax.net.ssl.keyStorePassword.
com.softwareag.um.client.connection.reader.daemon
Specifies whether the UM-Connection-Reader thread is an ordinary thread or a daemon thread. Universal Messaging client system property. Valid values are:
true - The thread is daemon.
false (default) - The thread is non-daemon.
If you do not specify this system property, the value is extracted from the session attributes. Implicitly, the session attributes have the value set to false. You can change the value using the Universal Messaging client API.
com.softwareag.um.client.ssl.keystore_password
com.softwareag.um.client.ssl.certificate_alias
com.softwareag.um.client.ssl.truststore_path
com.softwareag.um.client.ssl.truststore_password
com.softwareag.um.client.ssl.enabled_ciphers
com.softwareag.um.client.ssl.ssl_protocol
com.softwareag.um.client.follow_the_master
Used when creating a session to realms in a cluster. Specifies whether the session always connects to the master realm. The default value is false.
com.softwareag.um.client.useSharedThreadPool
Enables usage of a shared thread pool for processing incoming nConsumeEvent events for each client session. Values are true or false (default). By default, each client session creates and uses a separate thread pool for processing received nConsumeEvent events. When this system property is set to true, all client sessions will use a shared thread pool. Using a shared thread pool for all client sessions may have a performance impact depending on the size of the common thread pool and the number of client sessions.
Note:
When each client session uses a separate thread pool, closing the session interrupts any event listener threads that are blocked during processing. When all client sessions share a thread pool, closing a session does not interrupt any event listener threads that are blocked during processing. Thus, the blocked event listener does not release a shared thread after closing the client session. This behavior impacts the processing of incoming events, because the shared pool will not have available threads. Software AG recommends to enable the shared pool for all client sessions only if the event listener of the client application ensures that the processing of the events is fast and graceful.
com.softwareag.um.client.SharedThreadPoolMaxSize
Specifies the maximum size of the shared thread pool for the client session. The default is 5 threads.
com.softwareag.um.client.session_disable_reconnect
Specifies whether the session attempts to reconnect to the realm server after disconnecting. If the property is set to true, the session does not make attempts to reconnect. The default value is false.
com.softwareag.um.client.write_handler
Specifies the Universal Messaging JVM-wide socket write handling. Valid values are:
standard (default) - enables a peak write handler, which is the most optimized mode for both latency and throughput. The handler writes events directly to the socket layer until a certain number of socket writes per second occur, at which point the handler switches to queued write handing until the rate of messages decreases.
direct - enables a write handler that writes events directly to the socket layer and never queues events. This mode can have an impact on latency if the throughput is higher than the capacity of the socket layer.
queue - enables a write handler that never writes directly to the socket layer, but pushes all events into an in-memory queue. The events are then written to the socket layer by another thread in batches, which increases latency. However, if many events are being written, this mode prevents further spikes in latency.
com.softwareag.um.client.network_io_buffer_size
Specifies the receive and send buffer size in bytes when a socket is created. The larger the value of this property, the larger the buffers that the operating system needs to allocate. The default value is 1310720.
HPROXY
Shorthand for http.proxyHost and http.proxyPort.
http.proxyHost
Sets the proxy host name to use.
http.proxyPort
Sets the proxy port to use.
http.proxySet
Set to true if the URL handler is to use a proxy.
javax.net.debug
Useful to debug SSL issues.
jdk.tls.client.protocols
Specifies one or more (comma-separated) SSL protocols that the client is allowed to use. If an attempt is made to use any other protocol on the client, an error will be raised. Refer also to the option SSLClientProtocol, which can also influence the SSL protocol to be used.
This option is only available on the Oracle® JVM.
LOG_FRAMEWORK
Specifies a third-party logging framework to use. Can be set to LOGBACK or LOG4J2. The default is fLogger.
LOGFILE
Used to specify a log file to write the log entries to. The default value is System.err.
LOGLEVEL
Specifies the current log level to use. The default value is 5.
LOGSIZE
Specified in bytes before the log file is rolled. The default value is 100000.
SSLClientProtocol
Sets the default SSL Protocol to use.
If the option jdk.tls.client.protocols is defined, SSLClientProtocol must be one of the protocols defined in jdk.tls.client.protocols.
If SSLClientProtocol is not supplied, then client SSL communication will attempt to use one of the protocols defined in jdk.tls.client.protocols. If jdk.tls.client.protocols is not defined, then an attempt will be made to use the JVM default protocol, or TLS when that is not possible.
user.name
Used to override the current username without coding it. The default value is "Signed on name".