Advanced Parameters

The advanced parameters of MigratoryData are described below.

RunAsUser

   
Description Specify the unprivileged (normal) user to run MigratoryData
Default value No default value
Required parameter Optional
This parameter is currently supported only for Linux.

For example, if migratorydata is an existing normal user, then you could configure MigratoryData to run as a normal user as follows:

RunAsUser = migratorydata

Then, start MigratoryData as root (this is necessary to be able to bind on the privileged ports 80 or 443). Please note that while running as root, MigratoryData will not accept any client connections. Then, MigratoryData will drop the root privileges (using the system call setuid) and will automatically switch to the normal user migratorydata. Only at this time, MigratoryData Server will start to accept client connections.

PublishAllowFromAddressList

   
Description Define the list of IP addresses allowed for message publication
Default value No default value
Required parameter Optional

If this parameter is configured, then MigratoryData will accept message publications only from the clients running on any of the IP addresses defined by this parameter.

If this parameter is not set, message publication will be allowed from any client provided however that the client is allowed by the entitlement rules you define (see the Entitlement parameter).

Please use only dotted-decimal notation for the IP addresses (no DNS names) to specify the list of IP addresses. For example:
PublishAllowFromAddressList = 192.168.1.100, 192.168.1.101

Native.Ssl

   
Description Specify whether to use OpenSSL for native TLS/SSL communication
Default value false
Required parameter Optional

This parameter can have two values: true or false. If set on true, then MigratoryData will use the OpenSSL library for TLS/SSL support. The OpenSSL library provides a better implementation of TLS/SSL in terms of memory and CPU usage compared to the default implementation of Java. While this difference might not be substantial for small or medium MigratoryData deployments, for large MigratoryData deployments with millions of users, it is recommended to use OpenSSL.

This parameter is currently supported only for Linux. Also, the packages OpenSSL and APR are required to enable the native TLS/SSL communication. See the Installation Guide to learn how to install these packages.

MaxCachedMessagesPerSubject

   
Description The number of the most recent messages to be cached
Default value 1000
Required parameter Optional

For each subject, the MigratoryData maintains an in-memory cache. Messages are removed continuously from the cache of each subject, however each message is held in the cache up to the number of messages defined by this parameter or at least for the number of seconds defined by the parameter CacheExpireTime, whichever comes first..

This parameter applies only if the Guaranteed Message Delivery feature is enabled, see the parameter ClusterDeliveryMode for more details.

CacheExpireTime

   
Description The number of seconds to cache a message
Default value 180
Required parameter Optional

For each subject, the MigratoryData maintains an in-memory cache. Messages are removed continuously from the cache of each subject, however each message is held in the cache up to the number of messages defined by the parameter MaxCachedMessagesPerSubject or at least for the number of seconds defined by this parameter, whichever comes first.

This parameter applies only if the Guaranteed Message Delivery feature is enabled, see the parameter ClusterDeliveryMode for more details.

Workgroups

   
Description The number of groups of clients
Default value The number of total CPU cores available
Required parameter optional

In order to better scale on multiprocessor hardware the incoming users are separated in groups. This parameter configures the number of groups (every group has a dedicated thread). If not supplied the total CPU cores available is the default value. In most situations it is not recommended to modify the default value.

IoThreads

   
Description The number of threads used for I/O processing
Default value The number of total CPU cores available
Required parameter Optional

If not supplied the number of total CPU cores available is the default value. In most situations it is not recommended to modify the default value.

Stats.LogInterval

   
Description Specify the time interval in seconds to log various statistics
Default value 60
Required parameter Optional

The minimum value of this parameter is 5 seconds. The format of the stats logs is as follows:

[timespamp] [S] [INFO] [STATS] {
      connectedSessions,\
      connectedSessionsWeb,\
      connectedSessionsMobile,\
      connectedSessionsDesktop,\
      sessionConnectionsPerSecond,\
      sessionDisconnectionsPerSecond,\
      inPublishMessagesPerSecond,\
      outPublishMessagesPerSecond,\
      inBytesPerSecond,\
      outBytesPerSecond,\
      clientInPublishMessagesPerSecond,\
      connectRateRecoverySuccessPerSecond,\
      connectRateRecoveryFailPerSecond,\
      clientPublishFailedPerSecond\
}

MaxBatchingSpace

   
Description The maximum size of the batching in bytes
Default value 0
Required parameter Optional

See the batching feature to learn about batching before configuring this parameter. If this parameter is not configured or configured with the default value 0, then batching is disabled.

MaxBatchingTime

   
Description The maximum time of the batching in milliseconds
Default value 0
Required parameter Optional

See the batching feature to learn about batching before configuring this parameter. If this parameter is not configured or configured with the default value 0, then batching is disabled.

SslProtocols

   
Description Enable one or more SSL protocols
Default value TLSv1.2, TLSv1.1, TLSv1 for Java 8
Required parameter Optional

For Java 8, the following TLS/SSL protocols are configured by default TLSv1.2, TLSv1.1, TLSv1. You can change the default list of TLS/SSL protocols by using this parameter. For example, to enable only the TLSv1.2 protocol, configure this parameter as follows:

SslProtocols = TLSv1.2

CipherListEnabled

   
Description Enable one or more SSL ciphers besides the default JVM ciphers
Default value No default value
Required parameter Optional

Use this parameter to enable one or more supported ciphers not enabled by default. For example:

CipherListEnabled = \
  TLS_DHE_RSA_WITH_AES_128_CBC_SHA, \
  TLS_DHE_DSS_WITH_AES_128_CBC_SHA

CipherListExcluded

   
Description Exclude one or more SSL ciphers from the default JVM ciphers
Default value No default value
Required parameter Optional

Use this parameter to exclude one or more ciphers enabled by default. For example:

CipherListEnabled = \
  TLS_DHE_RSA_WITH_AES_128_CBC_SHA, \
  TLS_DHE_DSS_WITH_AES_128_CBC_SHA

MaxMessageSize

   
Description The maximum message size in bytes
Default value 65536 (64 KB)
Required parameter Optional

This parameter specifies the maximum number of bytes a message should have (including the protocol overhead) to be accepted by MigratoryData. A client which sends a message larger than this size will be automatically disconnected.

A protection has been added in the version 6 of the MigratoryData client libraries such that if the size of a message (including the protocol overhead) is higher than the value of this paramater, the publication of that message will fail, and the client will be notified about that with a status notification NOTIFY_MESSAGE_SIZE_LIMIT_EXCEEDED.

MaxBandwidthRate

   
Description Specifies the maximum bandwidth rate in megabytes/second
Default value 0
Required parameter Optional

This parameter specifies the maximum bandwidth rate – in megabytes per second (MB/s) – that the MigratoryData server is allowed to consume from the available network bandwidth capacity to push messages to clients. If zero is specified, the bandwidth rate will not be limited (this is the default value).

This parameter is particularly useful for use cases where, occasionally, the outgoing message throughput is higher than the available network bandwidth capacity. Suppose the MigratoryData server is installed on a machine with a network bandwidth capacity of 1 Gbps (i.e. 125 MB/s), and supposing there are one or more large messages to be delivered to a large number of users, producing an outgoing data volume of 1250 MB. By configuring this parameter at 125 MB/s, the assumed available network capacity, the MigratoryData server will be able to deliver that volume of data during 10 seconds, and then operate normally, with low message latency. Otherwise, without configuring this parameter, the system might be severely impacted - as the capacity of the kernel’s socket buffers could be exhausted.

Note that configuring this parameter could be useful not only for the use cases discussed above. It can be used as a protection against the deliberate or accidental exceeding of the available network bandwidth capacity for any other use case.

For most cases, this parameter should be configured to be equal to the available network bandwidth capacity.

With a LAN-based deployment, this parameter can be configured at 125 (MB/s) on a 1 GbE network, and respectively at 1250 (MB/s) on a 10 GbE network. However, with an Internet-based deployment, please check with your network provider to determine the bandwidth capacity available for your deployment.

Extension.Presence

   
Description Specify whether to enable the presence extension or not
Default value false
Required parameter Optional

Set this parameter on true to enable the presence extension plugin built with the MigratoryData Extension SDK for Presence and deployed under the folder extensions of your MigratoryData installation.

Extension.Presence.Subject

   
Description Subject used to replicate presence updates across the cluster
Default value /__migratorydata__/presence
Required parameter Optional

Whenever a user connects to or disconnects from a cluster member, a presence update is provided to the presence extension of that cluster member. Moreover, this presence update is replicated across the cluster such that the presence update is provided to the presence extension of each cluster member.

Internally, MigratoryData uses its client library to replicate presence updates across the cluster. Each cluster member subscribes to the subject defined by this parameter. Whenever a user connects to or disconnects from a cluster member, that cluster member publishes a presence update on the subject defined by this parameter.

Extension.Presence.EntitlementToken

   
Description Entitlement token used for presence replication
Default value the value of the parameter EntitlementAllowToken
Required parameter Optional

As detailed in the description of the parameter Extension.Presence.Subject, MigratoryData replicates presence updates across the cluster.

The default value of this parameter is the value of the parameter EntitlementAllowToken. In this way, if the value of the parameter Entitlement is Basic or None, then there is no need to configure this parameter. Simply use its default value. Otherwise, if the value of the parameter Entitlement is Custom, then your custom entitlement rules should entitle subscriptions and publications on the subject defined by the parameter Extension.Presence.Subject for the connections using the entitlement token defined by this parameter.

Extension.Audit.Access

   
Description Specify whether to enable the audit access logs or not
Default value false
Required parameter Optional

Set this parameter on true to enable the audit access logs. If the audit extension plugin built with the MigratoryData Extension SDK for Audit and deployed under the folder extensions of your MigratoryData installation is not already enabled, then configuring this parameter on true will also enable the audit extension plugin.

Extension.Audit.Cache

   
Description Specify whether to enable the audit cache logs or not
Default value false
Required parameter Optional

Set this parameter on true to enable the audit cache logs. If the audit extension plugin built with the MigratoryData Extension SDK for Audit and deployed under the folder extensions of your MigratoryData installation is not already enabled, then configuring this parameter on true will also enable the audit extension plugin.

Extension.Audit.Message

   
Description Specify whether to enable the audit message logs or not
Default value false
Required parameter Optional

Set this parameter on true to enable the audit message logs. If the audit extension plugin built with the MigratoryData Extension SDK for Audit and deployed under the folder extensions of your MigratoryData installation is not already enabled, then configuring this parameter on true will also enable the audit extension plugin.

Extension.Audit.Stats

   
Description Specify whether to enable the audit stats logs or not
Default value false
Required parameter Optional

Set this parameter on true to enable the audit stats logs. If the audit extension plugin built with the MigratoryData Extension SDK for Audit and deployed under the folder extensions of your MigratoryData installation is not already enabled, then configuring this parameter on true will also enable the audit extension plugin.