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 |
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).
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.
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.
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.
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.