Configuration Group/Property | Valid values | Description | Adv. |
Audit Settings | |||
ChannelACL | True or False | Log to the audit file any unsuccessful channel ACL interactions. Default is true. | |
ChannelFailure | True or False | Log to the audit file any unsuccessful realm interactions. Default is true. | |
ChannelMaintenance | True or False | Log to the audit file any channel maintenance activity. Default is false. | |
ChannelSuccess | True or False | Log to the audit file any successful channel interactions. Default is false. | |
DataGroup | True or False | Log to the audit file any changes to Data Group structure | |
DataGroupFailure | True or False | Log to the audit file any failed attempts to Data Group structure | |
DataStream | True or False | Log to the audit file Data Stream add and removes | |
Group | True or False | Log to the audit file any added or removed security groups | |
GroupMembers | True or False | Log to the audit file any changes in group membership | |
InterfaceManagement | True or False | Log to the audit file any interface management activity. Default is true. | |
JoinFailure | True or False | Log to the audit file any unsuccessful join interactions. Default is true. | |
JoinMaintenance | True or False | Log to the audit file any join maintenance activity. Default is true. | |
JoinSuccess | True or False | Log to the audit file any successful join interactions. Default is false. | |
QueueACL | True or False | Log to the audit file any unsuccessful queue ACL interactions. Default is true. | |
QueueFailure | True or False | Log to the audit file any unsuccessful queue interactions. Default is true. | |
QueueMaintenance | True or False | Log to the audit file any queue maintenance activity. Default is false. | |
QueueSuccess | True or False | Log to the audit file any successful queue interactions. Default is false. | |
RealmACL | True or False | Log to the audit file any unsuccessful realm ACL interactions. Default is true. | |
RealmFailure | True or False | Log to the audit file any unsuccessful realm interactions. Default is true. | |
RealmMaintenance | True or False | Log to the audit file any realm maintenance activity. Default is true. | |
RealmSuccess | True or False | Log to the audit file any successful realm interactions. Default is false. | |
SnoopStream | True or False | Log to the audit file Snoop stream add and removes | |
Client Timeout Values | |||
EventTimeout | 5000 to No Max | The amount of ms the client will wait for a response from the server. Small values may cause clients to abandon waiting for responses and disconnect prematurely. Large values may cause clients to take an unusually long amount of time waiting for a response before disconnecting. Default is 60000. | |
HighWaterMark | 2 to 2147483647 | The high water mark for the connection internal queue. When this value is reached the internal queue is temporarily suspended and unable to send events to the server. This provides flow control between publisher and server. Default is 3000. | |
LowWaterMark | 1 to 2147483647 | The low water mark for the connection internal queue. When this value is reached the outbound internal queue will again be ready to push event to the server. Default is 1000. | |
QueueAccessWaitLimit | 200 to 2147483647 | The maximum number of milliseconds it should take to gain access to an internal connection queue to push events. Once this time has elapsed the client session will inform any listeners registered on the session which monitor these connection queues. Small values may result in an excessive number of notifications. Default is 200. | Y |
QueueBlockLimit | 500 to 2147483647 | The maximum number of milliseconds an internal connection queue will wait before notifying listeners after it has reached the HighWaterMark. Small values may result in excessive notifications. Default is 500. | Y |
QueuePushWaitLimit | 200 to 2147483647 | The maximum number of milliseconds it should take to gain access to an internal connection queue and to push events before notifying listeners. Small values may result in excessive notifications. Default is 200. | Y |
TransactionLifeTime | 1000 to No Max | The default amount of time a transaction is valid before being removed from the tx store. Default is 20000. | |
Cluster Config | |||
ClientQueueSize | 10 to 10000 | Size of the client request queue. If this queue is small then the clients will wait longer and performance may drop. If too large then client requests are queued but not processed. | |
ClientQueueWindow | 1 to 1000 | The value used when an async consumer of type queue or durables of types shared queue, shared, and serial do not set an explicit value for the window size. Default is 100. Important: A small number will reduce performance. | |
ClientStateDelay | 0 to 120000 | The number of seconds to delay the cluster processing client requests when a cluster state change occurs. A large number will delay client requests longer than required. | |
ClusterMode | Active or Replication | Specifies whether to allow non-admin client connections to nodes other than the master node in a cluster. If the value is set to Active (default value), client connections can be made to any node in a cluster. The clients can also make use of the FollowTheMaster feature. If ClusterMode is set to Replication, non-admin client connections can be made to only the master node. Nodes that are not the master node will reject all non-admin client connections. With this setting, attempts by clients to use the FollowTheMaster feature will be ignored. Note: Admin clients can connect to any node in a cluster, irrespective of the ClusterMode configuration. | |
DisableHTTPConnections | True or False | Disable HTTP(s) connections between cluster nodes. If true then the server will only use nsp(s) connections between realm nodes, and any nhp(s) rnames will be switched to using nsp(s). | |
DisconnectWait | 1000 to 120000 | The time (in milliseconds) to wait for the server to join the cluster while trying to process cluster-wide user requests. If you increase the wait time, have in mind that the server might block the processing of client requests during the wait period. | |
EnableMulticast | True or False | Enables cluster requests broadcast to realms to be send through the reliable multicast mechanism within Universal Messaging. This setting only takes effect if a multicast interface is configured for all nodes within the cluster. | |
EnableStoreRecoveryRetry | True or False | Enables/Disables the ability for the slave to re-attempt a recovery of a store if it detects changes to the store during recovery. If true the slave will continue to attempt a cluster recovery of a store which may be changing due to TTL or capacity on the store attributes. | Y |
EnginePipelineSize | 1 to 32 | Number of concurrent pipeline threads running within the cluster engine. If set to 1, then all requests are pipelined through one thread, else topics/queues are bound to specific pipelines. | Y |
FormationTimeout | 60000 to 300000 | The time to wait for the state to move from recovery to slave or master. If this value is too small then recovering a large number of events will result in the realms dropping out of the cluster. | |
HeartBeatInterval | 1000 to 120000 | Heart Beat interval in milliseconds. Default is 120000. A small value here will cause excessive messages being generated between realms. | |
InitialConnectionTimeout | 5000 to 240000 | The number of milliseconds that the server will wait while trying to establish a connection to a peer. A small value may reduce the chance of a connection in busy networks, while a large number may delay cluster formation. | |
IsCommittedDelay | 1000 to 30000 | When a slave processes an IsCommitted request and it is still recovering the Transaction store, it will block the clients request for this timeout period. If this is set to a large value, clients may experience a substantial delay in response. | Y |
MasterRequestTimeout | 1000 to 900000 | Specifies the amount of time in milliseconds that the master is going to wait for a slave to respond to a single request before disconnecting it. This timeout will prevent a slave from being reconnected if it fails to respond to a master request. | |
MasterVoteDelay | 1000 to 60000 | When a node has requested to be master it will wait this timeout period in milliseconds for the peers to agree. If this number is too high the cluster formation may take some time. | |
MasterWaitTimeout | 1000 to 600000 | When the master is lost from the cluster and the remaining peers detect that the master has the latest state they will wait for this time period for the master to reconnect. If the master fails to reconnect in this time period a new master is elected. | |
PublishQueueEnabled | True or False | If enabled the slaves will queue publish requests prior to committing them to the cluster. If enabled and a slave is killed, any outstanding publish events will be lost. | Y |
QueueSize | 100 to 1000 | Number of events outstanding to be processed by the clusters internal queue before sending flow control requests back. Increased size increases the memory usage. | |
StateChangeScan | 10000 to No Max | When a realm loses master or slave state then after this timeout all cluster based connections will be disconnected. If the realm reenters the cluster then the disconnect timeout is aborted. If this value is too low, all clients will be bounced while the cluster is forming. | |
SyncPingSize | 100 to 10000 | Number of events sent before a cluster sync occurs. A small number will affect overall performance, a large number may result in a cluster being too far out of sync. | Y |
Comet Config | |||
BufferSize | 1024 to 102400 | The buffer size for Comet requests. Large sizes will cause the realm to consume more memory when reading data from Comet clients. Small sizes may introduce delays in the time taken to read requests. | Y |
EnableLogging | True or False | Enables logging of all comet queries, will impact server performance. | |
Timeout | 10000 to No Max | The timeout for a Comet connection. Small sizes may cause Comet-based connections to time out prematurely. Large sizes may increase the time a server holds a disconnected Comet connection open. | |
Connection Config | |||
AllowBufferReuse | True or False | If set to true then buffers will be allocated from the buffer pool and once finished with returned to the pool. If set to false then buffers are allocated on the fly and then left for the system to free them. It is best to leave this set to true. For object creation limitation it is best to set this to true. | Y |
BufferManagerCount | 1 to 256 | The number of Buffer Managers that the server will allocate. This is used during startup to size and manage the network buffers. This does not need to be large, but a rule of thumb is 1 per core. | Y |
BufferPoolSize | 100 to 10000 | The underlying Universal Messaging IO utilizes buffers from a pool. By default we pre-load the pool with this number of buffers. As the reads/writes require buffers they are allocated from this pool, then once used are cleared and returned. If the size is too small we end up creating and destroying buffers, and the server may spend time creating them when needed. If the size is too large we have a pool of buffers which are not used taking up memory. | Y |
BufferSize | 1024 to 1048576 | This specifies the default size of the network buffers that Universal Messaging uses for its NIO. If small, then Universal Messaging will require more buffers (up to the maximum specified by BufferPoolSize) to send an event. If too large, then memory may be wasted on large, unused buffers. These buffers are reused automatically by the server, and are used to transfer data from the upper application layer to the network. So, for example, the server might use all BufferPoolSize buffers to stream from 1 application level buffer (depending on the relative sizes of the buffers). An efficient size would be about 40% more than the average client event, or 5K (whichever is largest). If too small, the server will send many small buffers. | |
CometReadTimeout | 1000 to 120000 | Specifies the time the server will wait for a client to complete sending the data. | |
ConnectionDelay | 10 to 60000 | When the server has exceeded the connection count, how long to hold on to the connection before disconnecting. If this is too low, the server will be busy with reconnection attempts. Default is 60000. | Y |
IdleDriverTimeout | 120000 to 2147483647 | Specifies the time in milliseconds that a communications driver can be idle before being deemed as inactive. When this happens the server will automatically close and remove the driver. This must be greater than the keep alive timeout else all connections will be closed due to inactivity. | |
IdleSessionTimeout | 10000 to No Max | If there has been no communication from a client for the configured number of milliseconds, the client is deemed idle and is disconnected. This typically occurs when there are network issues between a client and the server. If the value is too low, the chance of disconnecting a valid session is high. | |
KeepAlive | 5000 to No Max | The number of milliseconds the server will wait before sending a heartbeat. A small number will cause undue network traffic. Default is 60000. Changes to this property are not applied to existing connections but only to connections established after you modify the value. | |
MaxBufferSize | 1024 to 2147483647 | The maximum buffer size in bytes that the server will accept. Default is 20971520 (20MB). Rather than using larger buffers, it is recommended that you compress if possible to save bandwidth and memory on the server. This value exists to stop a user from accidentally or maliciously overloading the server and causing excessive memory consumption. The MaxBufferSize connection configuration option is propagated to client sessions when they are initialized (during the session handshake), therefore changing this option does not have effect for already initialized client sessions. | |
MaxNoOfConnections | -1 to 2147483647 | The total number of concurrent connections to the server. The default is -1, which indicates no limit on the number of connections. When you set a limit, connections that exceed the limit are rejected. However, a user with both the Override Connection Count realm permission and an admin connection can override the limit and still connect to the server. | |
MaxNoOfConnectionsPerUserName | -1 to 2147483647 | The number of concurrent connections to the server per user. The default is -1, which indicates no limit on the number of connections. When you set a limit, if connections exceed the specified number, the client gets nSecurityException. However, a user with both the Override Connection Count realm permission and an admin connection can override the limit and still connect to the server. | |
MaxWriteCount | 5 to 100 | When writing many events to a client the write pool thread may continue to send the events before returning to the pool to process other clients requests. So, for example if it is set to 5, then the thread will send 5 events from the clients queue to the client before returning to the pool to process another request. If this number is small it creates additional CPU overhead. | |
NetworkMonitorThreads | 2 to 100 | The number of threads to allocate to flushing client data, Please note this will only take effect after a restart. Depending on the number of concurrent clients the latencies during load my be higher then expected. | |
PriorityQueueCount | 2 to 10 | Sets the number of queues to divide priority levels between, up to a maximum of 10 queues. | |
PriorityReadSpinLockMaxConnections | 0 to 8 | Maximum number of clients allowed to allocate high priority spin locks. This property is deprecated and will be removed in a future product release. | |
PriorityReadSpinLockTime | 1 to 10000 | The time interval (in milliseconds), during which the thread spin read handler will continuously try reading events. The setting has effect only when PriorityReadType is set to Thread Spin. Default value is 500 milliseconds. This property is deprecated and will be removed in a future product release. | Y |
PriorityReadType | 0 to 2 | If enabled then high priority sessions will be enabled to run spin locks waiting to read. This property is deprecated and will be removed in a future product release. | |
QueueHighWaterMark | 100 to 2147483647 | The number of events in a client output queue before the server stops sending events. A small number will cause undue work on the server. Default is 3000. | |
QueueLowWaterMark | 50 to 2147483647 | The number of events in the clients queue before the server resumes sending events. Must be less than the high water mark. Default is 1000. | |
ReadCount | 1 to 20 | Number of times the thread will loop around waiting for an event to be delivered before returning. Large values may cause read threads to be held for long periods of time, but avoid context switching for delivering events. | |
UseDirectBuffering | True or False | If true the server will allocate DirectByteBuffers to use for network I/O, else the server will use HeapByteBuffers. The main difference is where the JVM will allocate memory for the buffers the DirectByteBuffers perform better. For the best performance the DirectByteBuffers are generally better. | Y |
WriteHandlerType | 1 to 5 | Specifies the type of write handler to use | |
whEventThresholdCount | 1 to 2000 | Number of events to exceed in the whEventThresholdTime to detect a peak. This number should be small enough to trigger peaks. | |
whEventThresholdTime | 1 to 2000 | Number of milliseconds to sample the event rate to detect peaks | |
whMaxEventsBeforeFlush | 1 to 10000 | Total number of events that can be sent before a flush must be done. If this number is too small then too many flushes will result. | |
whMaxEventsPerSecond | No Min to No Max | Specifies the total number of events per second that a realm will send to clients before switching modes into peak mode. If this number is small then the server will go into peak mode too soon and latencies will start to increase. | |
whMaxTimeBetweenFlush | 1 to 1000 | Total number of milliseconds to wait before a flush is done. If this number is too large then latencies will increase. | |
Data Stream Config | |||
MonitorTimer | 1000 to 120000 | Time interval in milliseconds to scan the data group configuration looking for idle / completed streams. Large values may cause idle and inactive datastreams to remain on datagroups for long periods of time. Small values may cause transient disconnections to trigger datagroup removals for datastreams - requiring them to be added back into the datagroup. | Y |
OffloadMulticastWrite | True or False | If true then all multicast writes will be performed by the parallel fanout engine. | Y |
SendInitialMapping | True or False | When any stream registered client connect sends the entire Data Group Name to ID mapping | Y |
DurableConfig | |||
DurableNameFiltering | True or False | If true, the server checks the subscriber ID header of published events. If the header is not empty, it is used to designate that an event can be consumed by a specific durable object, if the subscriber ID matches the name of the durable subscription. | Y |
EnableConsumerStateMonitor | True or False | If true, the server checks the state of the store consumers once every minute. When the server finds unhealthy consumers, it logs diagnostic log messages about them in the nirvana.log file. These log entries are prefixed with the 'Consumer Warning:' header and are at the WARNING log level. On a system with thousands of stores, disabling this monitor helps to improve performance. If false, the diagnosing of consumer issues is harder. The default value is true. | |
QueuedExtendedException | True or False | If true, then if the selector on a queued durable changes, the selector is added to the exception string. | Y |
Environment Config | |||
AvailableProcessors | READ ONLY | Number of CPUs available | |
Embedded | READ ONLY | If true, this specifies that the server is running as an embedded server | |
InterRealmProtocolVersion | READ ONLY | Universal Messaging Server Inter-Realm Protocol Version | |
JavaVendor | READ ONLY | Vendor of Java Virtual Machine | |
JavaVersion | READ ONLY | Virtual Machine Version | |
NanosecondSupport | READ ONLY | Nanosecond support available through JVM on Native OS | |
OSArchitecture | READ ONLY | Operating System Architecture | |
OSName | READ ONLY | Operating System Name | |
OSVersion | READ ONLY | Operating System Version | |
ProcessId | READ ONLY | Process ID | |
ServerBuildDate | READ ONLY | Universal Messaging Server Build Date | |
ServerBuildNumber | READ ONLY | Universal Messaging Server Build Number | |
ServerReleaseDetails | READ ONLY | Universal Messaging Release Details | |
ServerVersion | READ ONLY | Universal Messaging Server Build Version | |
TimerAdjustment | READ ONLY | The size of the Operating System's time quantum. | |
Event Storage | |||
ActiveDelay | 100 to No Max | The time in milliseconds that an active channel will delay between scans. The smaller the number, the more active the server. Default is 1000. | Y |
AutoDeleteScan | 1000 to 500000 | Specifies the number of milliseconds between scans on AutoDelete stores to see if they should be deleted. The larger this time frame, the more AutoDelete stores will potentially not be deleted on the server. | |
AutoMaintenanceThreshold | 0 to 100 | Sets the percentage of free space in the persistent disk store before the server should run auto-maintenance on the store. It is by default 50. This means maintenance will be performed when 50% of the number of the events in the file are marked as dead (already consumed and acknowledged) so they can be deleted. Note: The auto-maintenance feature is available for single-file disk stores only. If you are using a multi-file disk store, the auto-maintenance feature is not available for this store, and any realm configuration properties that you set for auto-maintenance will be ignored for this store. | |
CacheAge | 1000 to No Max | The length of time in milliseconds that cached events will be kept in memory. The larger the value, the more memory will be utilized. | Y |
EnableStoreCaching | True or False | If true the server will try to cache events in memory after they have been written/read. Please note the server will need to be rebooted for this to take effect. By default, caching is disabled. To enable caching, set both the EnableStoreCaching and EnableCaching configuration properties to true. | |
IdleDelay | 5000 to No Max | The time in milliseconds that an idle channel will delay between scans. The smaller the number, the more active the server. Default is 10000. | Y |
JMSEngineAutoPurgeTime | 5000 to 600000 | Defines the interval between clean up of events on a JMS Engine Resource. A large interval may result in topics with large numbers of events waiting to be purged. | Y |
MaintenanceFileSizeThreshold | 1024000 | Sets the store file size in bytes that will trigger the auto-maintenance of the persistent disk store. With small store file sizes, the auto-maintenance will be run more often. With large store file sizes, the auto-maintenance may take longer to run. There are no performance issues with a big store file except on startup when the store needs to be reloaded. Note: The auto-maintenance feature is available for single-file disk stores only. If you are using a multi-file disk store, the auto-maintenance feature is not available for this store, and any realm configuration properties that you set for auto-maintenance will be ignored for this store. | |
MaintenanceMemoryThreshold | 1048576 | Maximum size in memory for any topic or queue to reach before maintenance of the in-memory cache is run. | |
PageSize | 10 to 100000 | The page size to use for the event store. This value sets the number of events/page. | |
QueueSubscriberFiltering | True or False | If set to true, the server will check the subscriber name/host header of published events and if that header is not empty, it will be used to designate that an event can be consumed by a specific subscriber if the subscriber name and/or host matches the subject user and/or host of the subscription. Switching on this option imposes a minor performance penalty as the server then performs additional filtering. Additionally, for clustered subscriptions, the master realm may need to load the event from the store to perform the filtering, which could have additional cost depending on the type of store and caching used. Default is false. Subscriber name/host filtering is activated at the API level by using the setSubscriberName() method of nConsumeEvent. | |
StoreReadBufferSize | 1024 to 3000000 | Size of the buffer to use during reads from the store. Note that the server will need to be restarted for this to take effect. | Y |
SyncBatchSize | 1 to 1000 | Specifies the maximum size before the sync call is made. The lower this value, the more sync calls made and the more overhead incurred. | Y |
SyncServerFiles | True or False | If true the server will sync each file operation for its internal files. If true, this adds additional overhead to the server machines and can reduce overall performance. | |
SyncTimeLimit | 1 to 1000 | Specifies the maximum time in milliseconds that will be allowed before the sync is called. The lower this value, the more file sync calls and the more overhead incurred. | Y |
ThreadPoolSize | 1 to 4 | The number of threads allocated to perform the management task on the channels. The more channels a server has, the larger this number should be. | |
Fanout Values | |||
ConnectionGrouping | True or False | If true allows the server to group connections with the same selector providing improved performance. This allows the server to optimize the way it processes events being delivered to the clients. This requires a server restart to take effect. | Y |
DelayPublishOnCapacity | True or False | Delays the publisher thread when the store capacity is exceeded. If this is not set, an exception is passed back to the client. | |
HonourSharedDurableCapacity | True or False | If true, the channel will check any shared durables for capacity before accepting a published event. If any of these durables are over capacity, the server will respond as if the parent channel is over capacity. If false, the event will be published regardless of the number of events on its shared durables. | Y |
IteratorWindowSize | 1 to 2147483647 | Specifies the number of events delivered to each Channel Iterator in a prefetch. This allows the client to perform much faster by prefetching events on fast moving topics requiring less client to server communication. The default is 100. | |
JMSQueueMaxMultiplier | 1 to 10 | The multiplier used on the High Water mark when processing events from a JMS Engine Queue/Topic. If this value is too high the server will consume vast amounts of memory. | Y |
ParallelThreadPoolSize | 2 to 64 | Specifies the number of threads to use within the thread pool. If this number is small then there maybe adverse overheads. This value required a restart to take effect. | |
PeakPublishDelay | 0 to No Max | When clients start to hit high water mark, this specifies how long to delay the publisher to allow the client time to catch up. If this is too small the publisher can overwhelm the server. | Y |
PublishDelay | 0 to No Max | How long to delay the publisher when the subscriber's queue start to fill, in milliseconds. If this number is 0 then no delay. | Y |
PublishExpiredEvents | True or False | Specifies whether to publish expired events at server startup. Default is true. | |
SendEndOfChannelAlways | True or False | Specifies whether to always send an End Of Channel, even if we find no matches within the topic. If set, the subscriber will always be informed that the subscription request has completed the recovery of the topic. | |
SendPubEventsImmediately | True or False | Specify whether to send publish events immediately. If true, then the server will send all publish events to clients immediately, if false the server is allowed to collect events before publishing. | |
Global Values | |||
AllowRealmAdminFullAccess | True or False | If true, then any user with the full realm access will have access to all channels and queues. | Y |
CacheJoinInfoKeys | True or False | If enabled, we cache join key information between events passed over joins. This reduces the number of objects created. If this property is set to false then the server will create a new byte[] and string for each joined event. | Y |
DisableExplicitGC | True or False | If set to true, garbage collection is done solely by the JVM. If set to false, the server calls the garbage collector at regular intervals to keep memory usage down. Default is true. | |
EnableCaching | True or False | If set to true, the channel storage properties Cache On Reload and Enable Caching are set to the values specified by the client. If set to false, then the channel storage properties Cache On Reload and Enable Caching are set to false, regardless of the values set by the client for these storage properties. By default, caching is disabled. To enable caching, set both the EnableStoreCaching and EnableCaching configuration properties to true. | |
EnableDNSLookups | True or False | If enabled the server will attempt to perform a DNS lookup when a client connects to resolve the IP address to a hostname. In some instances this may slow down the initial client connections. | |
EnableWeakReferenceCleanup | True or False | If enabled then the server will hook into the JVM's garbage collection and release cached items when the JVM needs memory. By enabling this, the number of cached events stored will be reduced but memory will be maintained. | Y |
ExtendedMessageSelector | True or False | If true, allows the server to use the extended message selector syntax (enabling string to numeric conversions within the message selector). Default is true. | |
HTTPCookieSize | 14 to 100 | The size in bytes to be used by nhp(s) cookies | Y |
OverrideEveryoneUser | True or False | Override the *@* permission for channels / queues with explicit ACL entry permissions. Default is false. | |
PauseServerPublishing | True or False | If true, the Pause Publishing feature is activated. Default is false. This feature causes the server to block all attempts by clients to publish events, and such clients will receive an nPublishPausedException. However, events that already exist in the publishing client queues on the server continue to be consumed by the subscribing clients until the queues are emptied. You can use the Pause Publishing feature when it is necessary to clear the client event queues on the realm server. This could be, for example, before performing maintenance tasks such as increasing buffer storage or performing a backup, or before changing the server configuration. | |
SendRealmSummaryStats | True or False | If true sends the realm's status summary updates every second. Default is false. | |
StampDictionary | True or False | Place Universal Messaging details into the dictionary. The default is true. | |
StampHost | True or False | Stamps the header with the publishing host (true/false). If true adds additional overhead to the server/client. | |
StampTime | True or False | Stamps the header with the current time (true/false). If true, adds additional overhead to the server/client. | |
StampTimeUseHPT | True or False | If this is set to true, then the server will use an accurate millisecond clock, if available, to stamp the dictionary. This may impact overall performance when delivering events when latency is important. | |
StampTimeUseHPTScale | 0 to 2 | This has 3 values, milli, micro or nano accuracy | |
StampUser | True or False | Stamps the header with the publishing user (true/false). If true, adds additional overhead to the server/client. | |
StatusBroadcast | 2000 to No Max | This property has two purposes: The number of milliseconds between status events being published to any clients using Admin API or Enterprise Manager. A small value increases the server load. The number of milliseconds between status messages being written to the server log, when periodic status logging has been activated via the EnableStatusLog property. Remember that if you change the value of this property, it will affect the time interval for both status events and status log intervals. The default is 5000, i.e. every 5 seconds. | |
Inter-Realm Comms Config | |||
EstablishmentTime | 10000 to 120000 | Time for an inter-realm link to be initially established. This value should reflect the latency between nodes. | Y |
KeepAliveInterval | 1000 to 120000 | Time interval where if nothing is sent a Keep Alive event is sent. This can be used to detect if remote members are still up and functioning. | Y |
KeepAliveResetTime | 10000 to 180000 | If nothing has been received for this time the connection is deemed closed. This value must be larger than the KeepAliveInterval. | Y |
MaximumReconnectTime | 1000 to 50000 | The maximum number of milliseconds to wait before trying to re-establish a connection. If this value is too large, cluster formation will be delayed. The reconnect will be attempted at a random amount of time between MinimumReconnectTime and MaximumReconnectTime. | Y |
MinimumReconnectTime | 100 to 10000 | The minimum time to wait before trying to re-establish a connection. If this number is too high then it may impact the network during outages. The reconnect will be attempted at a random amount of time between MinimumReconnectTime and MaximumReconnectTime. | Y |
Timeout | 60000 to 180000 | If no events are received within this time limit, the link is assumed dead and will be closed. If this limit is less than the keep alive time then the link will be closed. | Y |
WriteDelayTimeout | 1000 to 60000 | The maximum time to wait on a write if the link has dropped. If a realm disconnects when we are able to write to it, we wait for a set amount of time for the link to come back before abandoning the write and resetting altogether. This insulates the cluster against some transitive network conditions. | Y |
JVM Management | |||
EmergencyThreshold | 50 to 99 | If the amount of memory used exceeds the EmergencyThreshold value, the connection is paused for a long duration (24 days). If the value of EmergencyThreshold is too large, the server may run out of memory. Default is 94, i.e. 94%. | |
EnableJMX | True or False | Enable/disable JMX MBeans within the server. If enabled the server will present JMX MBeans so it can be monitored by any JMX client. Default is false. Note: This property activates or deactivates the JMX MBeans which are available from Universal Messaging v10.7 onwards. EnableJMX and EnableLegacyJMX can have the value true at the same time, meaning that Universal Messaging will activate JMX beans for the old and new versions in the same session. | |
EnableLegacyJMX | True or False | Enable/disable JMX MBeans within the server. If enabled the server will present JMX MBeans so it can be monitored by any JMX client. Default is false. Default is false. Note: This property activates or deactivates the JMX MBeans which were available up to and including Universal Messaging v10.5. EnableJMX and EnableLegacyJMX can have the value true at the same time, meaning that Universal Messaging will activate JMX beans for the old and new versions in the same session. | |
ExitOnDiskIOError | True or False | If true, the server will exit if it gets an I/O Exception. Setting this to false may result in lost events if the server runs out of disk space. Default is true | Y |
ExitOnInterfaceFailure | True or False | If true and for any reason an interface cannot be started when the realm initializes, the realm will shut down. | Y |
FlatStoreJMXBeanNamespace | True or False | Defines whether JMX topics and queues have flat namespaces. Default is false. If you set the property to true, a JMX queue namespace, for example, will have the format destinationName=/q1/q2/q3. | |
IORetryCount | 2 to 100 | Number of times a file I/O operation will be attempted before aborting | Y |
IOSleepTime | 100 to 60000 | Time between disk I/O operations if an I/O operation fails. If this time is large then the server may become unresponsive for this time. | Y |
JMXRMIPort | 0 to No Max | The port number to be used for JMX RMI connections. Set the property to a valid, not bound port number. Changes will take effect immediately and no server restart is required. If the port is not available for some reason, the realm server will go through the next 10 consecutive ports and will book the first free port. In order to disable the RMI, set the property to 0. | |
JMXRMIServerURLString | String | Describes the URL at which you can remotely connect to the Bean Server. Its default value is Not Bound. The field is read-only. | |
MemoryMonitoring | 60 to 30000 | Number of milliseconds between monitoring memory usage on the realm. If this value is too large then the realm will be slow to handle memory usage. Default is 2000. | |
WarningThreshold | 40 to 95 | The memory threshold when the server starts to scan for objects to release. If this value is small then the server will release objects too soon, resulting in a lower performing realm. Default is 85, i.e. 85%. | |
Join Config | |||
ActiveThreadPoolSize | 1 to No Max | The number of threads to be assigned for the join recovery. Default is 2. | |
IdleThreadPoolSize | 1 to 2147483647 | The number of threads to manage the idle and reconnection to remote servers. This number should be kept small. Default is 1. | |
MaxEventsPerSchedule | 1 to 2147483647 | Number of events that will be sent to the remote server in one run. A low number will increase the time to recover the remote server, a large number will impact other joins which are also in recovery. Default is 50. | Y |
MaxQueueSizeToUse | 1 to 2147483647 | The maximum events that will be queued on behalf of the remote server. A low number increases the time for the remote server to recover, a large number increases the memory used for this server. Default is 100. | Y |
RemoteJoinAckBatchSize | Events received through remote joins are acknowledged in batches. This property configures the batch size. | Y | |
RemoteJoinAckInterval | In addition to the batch acknowledgment, remote join events get acknowledged every n milliseconds. This property configures this interval. | Y | |
UseQueuedLocalJoinHandler | True or False | Specifies whether to use a queued join event handler. true will enable source channels and destination channels to be process events independently. | Y |
Logging Config | |||
DefaultLogSize | 100 to 2147483647 | The default size of the log in bytes. Note: This property does not apply for Log4j2. | |
DisplayCurrentThread | True or False | If enabled, the log shows the current thread in the log message. Default: true | |
EnableLog4J | True or False | If enabled, Universal Messaging will intercept log messages and pass to Log4J as well. Restart the server for this configuration to take effect. | |
EmbedTag | True or False | Used to control if the message tag is displayed in log messages. Default: false | |
EnableStatusLog | True or False | If true, periodic logging of the Universal Messaging server status is activated. The messages will be logged at time intervals given by the StatusBroadcast configuration property described in the Global Values section. The default is true. | |
fLoggerLevel | 0 to 6 | Use only for the fLogger framework or when LogLevelOverride is set to true for Log4j2. The server logging level, between 0 and 6, with 0 indicating very verbose, and 6 indicating very quiet. The more logging requested, the more overhead on the server. Default is 4. When you configure Universal Messaging to use Log4j2 as the logging framework, this property sets the log level only for the Universal Messaging server loggers (com.pcbsys.foundation, com.pcbsys.nirvana.base, com.pcbsys.nirvana.server, com.pcbsys.nirvana.server.handler,com.pcbsys.nirvana.server.plugins, com.pcbsys.nirvana.server.plugins.protocols, com.pcbsys.foundation.security.login). The property does not set the log level for any other loggers defined in the log4j2.xml configuration file. Only the log messages from the internal logger are forwarded to the Universal Messaging administrator connections. | |
LogLevelOverride | True or False | Use only for the Log4j2 framework. If set to true, you can configure the fLoggerLevel property. false restores the configuration from log4j2.xml and makes fLoggerLevel ineffective in the Enterprise Manager. The default is true. | |
LogManager | 0 to 2 | The Log manager to use. 0 = ROLLING_OLD, 1 = ROLLING_DATE, 2 = ROLLING_NUMBER Default: ROLLING_DATE Note: This property does not apply for Log4j2. | |
RolledLogFileDepth | 0 to 2147483647 | The number of log files to keep on disk when using log rolling. Oldest log files will be deleted when new files are created. Note: This property does not apply for Log4j2. | |
Note: For further information about using the log file, see The Enterprise Manager Logs Panel. | |||
Metric Config | |||
EnableEventMemoryMonitoring | True or False | If this is set to true, the server will make available memory usage. | |
EnableMetrics | True or False | If this is set to true, the server will make available system metrics (e.g. memory usage). | |
Plugin Config | |||
EnableAccessLog | True or False | Defines if plugin access log is produced | |
EnableErrorLog | True or False | Defines if plugin error log is produced | |
EnablePluginLog | True or False | Defines if plugin status log is produced | |
MaxNumberOfPluginThreads | 10 to 10000 | Maximum number of threads to allocate to the plugin manager | Y |
PluginTimeout | 1000 to 30000 | Time in milliseconds that the plugin will read from a client. If too small, the plugin may not load all of the clients requests | Y |
Protobuf Config | |||
CacheEventFilter | True or False | Hold the Protocol Buffer filter cache in memory. Default true. | Y |
Protocol AMQP Config | |||
AnonymousUser | String | The user name to use for anonymous users | |
BufferSize | 1000 to 60000 | The size of the buffer that will be used to read/write on the AMQP connection | |
DefaultNodeMode | 0 to 1 | The type of node if it is not able to detect it. 0=Queue, 1=Topic | |
Enable | 0 to No Max | If true the server will accept incoming AMQP connections | |
EnableWriteThread | True or False | Enables the off loading of the physical write to a thread pool | Y |
EngineLoopCount | 4 to 100 | How many times the AMQP state engine will cycle per thread pool allocation | Y |
MaxFrameSize | 10000 to 2147483647 | Maximum size of an AMQP frame | Y |
MaxThreadPoolSize | 2 to 100 | Largest number of threads the pool can have. | |
MinThreadPoolSize | 1 to 10 | Smallest number of threads for the dedicated AMQP thread pool | |
QueuePrefix | String | The address prefix for specifying topic nodes as required by some clients | |
SASL_Anonymous | True or False | Enable Anonymous SASL | |
SASL_CRAM-MD5 | True or False | Enable CRAM-MD5 SASL | |
SASL_DIGEST-MD5 | True or False | Enable DIGEST-MD5 SASL | |
SASL_Plain | True or False | Enable Plain SASL | |
SubscriberCredit | 100 to 2147483647 | Sets the subscriber (receiver) credit | |
Timeout | 10000 to 300000 | Sets the network timeout | Y |
TopicPrefix | String | The address prefix for specifying topic nodes as required by some clients | |
TransformToUse | 0 to 3 | Selects the type of transformation to use from AMQP style events to native UM events. 0 - No transformation, 1 - Basic Transformation, 2 - Complete Transformation, 3 - User Configurable | |
Protocol MQTT Config | |||
AutoCreatedStoreSpindleSize | 0 to 100 000 | Sets the spindle size for automatically created MQTT stores. The default value is 50000. | |
DisconnectClientsOnPublishFailure | True or False | Defines whether the server should disconnect clients to inform them that publishing has failed. The default is true. | |
Enable | True or False | If true, the server will accept incoming MQTT connections. The default is true if this feature is enabled in the product licence. | |
EnableAutoCreateTopics | True or False | If true, the server will auto-generate Topics for MQTT clients for subscriptions and publishing. The default is true. Note: This property is only applicable for client IDs with no wildcard. | |
EnforceAlphaNumericClientID | True or False | If true, the Client ID must consist solely of alphanumeric characters. The default is false. Note: This property is only applicable for MQTT 3.1.1. | Y |
IgnoreClientIDLength | True or False | If true, ignore the standard Client ID maximum length check of 23 characters. The default is true. Note: This property is only applicable for MQTT 3.1.1. | Y |
MaxOutstanding | 100 to 64000 | Sets the maximum number of events that the server will send before waiting for the client to acknowledge them (QoS:1 and above). The default is 64000. | |
QoS0AsTransient | True or False | If true, the server will not recover publish events with QoS greater than or equal to 0. The default is false. Note: This property is only applicable for MQTT 3.1.1. | Y |
SessionStateTTL | 0 to No Max | The number of milliseconds the state of a Client ID is kept between connections. The default value is set to 3 days. Setting this value to 0 will store the Client ID state until a clean session is received. | Y |
SupportZeroLength | True or False | If true, the server will auto-generate the Client ID if it has zero length. The default is true. Note: This property is only applicable for MQTT 3.1.1. | Y |
Strict | True or False | To be compliant with MQTT, stores must use the JMS Engine. This flag enforces this check. The default is true. | Y |
RecoveryDaemon | |||
EventsPerBlock | 1 to 2147483647 | The number of events to send in one block to a recovering connection. Small values may slow down the overall speed of recovery, however large values may saturate the recovery thread and keep it busy from performing recovery tasks for other stores and connections. | Y |
ThreadPool | 1 to 2147483647 | Number of threads to use for client recovery | |
Server Protection | |||
DiskScanEnable | True or False | Enables the disk free space scan, using values defined by DiskUsageFreeThreshold and DiskUsageScanInterval. Default is true. The scan checks whether there is sufficient free disk space for the Universal Messaging server to continue normal processing. If the disk space available is less than the DiskUsageFreeThreshold value, the server logs an error message. The server will initiate a clean shutdown with an appropriate error message if the disk space available is less than 500 MB. Note: If the server startup parameter DISK_USAGE_SCAN_ENABLE is set to true or false, the setting of DiskScanEnable is ignored. If DISK_USAGE_SCAN_ENABLE is undefined (i.e. set to neither true nor false), the setting of DiskScanEnable is used. | Y |
DiskUsageFreeThreshold | 1 to 50 | Specifies the minimum percentage amount of free disk space required for the realm server to continue processing. When the percentage of free disk space drops below this value, the server will shut down. Default is 5. Note: This property is only activated in the following circumstances: if DISK_USAGE_SCAN_ENABLE is set to true, or if DISK_USAGE_SCAN_ENABLE is undefined (i.e. set to neither true nor false) and DiskScanEnable is set to true. See the description of DiskScanEnable for further information on DISK_USAGE_SCAN_ENABLE. | Y |
DiskUsageScanInterval | 1000 to 600000 | The interval in milliseconds between one disk usage scan and the next disk usage scan. Default is 1000. Note: This property is only activated if the same circumstances apply as for DiskUsageFreeThreshold. | Y |
EnableFlowControl | True or False | Enables flow control of producer connections. Default is false. See the section
Out-of-Memory Protection in the Concepts guide for further details. | |
FlowControlWaitTimeOne | 1000 to 120000 | The time in milliseconds to hold a producing connection before processing its events. This is the first level of waiting and the shortest wait time. Default is 2000. Only activated if EnableFlowControl is set to true. | Y |
FlowControlWaitTimeTwo | 1000 to 120000 | The time in milliseconds to hold a producing connection before processing its events. This is the second level of waiting. Default is 4000. Only activated if EnableFlowControl is set to true. | Y |
FlowControlWaitTimeThree | 1000 to 120000 | The time in milliseconds to hold a producing connection before processing its events. This is the third level of waiting and the longest wait time. Default is 10000. Only activated if EnableFlowControl is set to true. | Y |
Thread Pool Config | |||
CommonPoolThreadSize | 5 to 1000 | Maximum number of threads to allocate to the common thread pool. | |
ConnectionThreadPoolMaxSize | 10 to 2147483647 | The maximum number of threads allocated to establish client connections. If this number is too small then connections may be left waiting for a thread to process it. | |
ConnectionThreadPoolMinSize | 4 to 100 | The minimum number of threads allocated to establish client connections. If too large then the server will have many idle threads. | |
ConnectionThreadWaitTime | 10000 to 300000 | The time for the thread to wait for the client to finalize the connection. If too low then slow linked clients may not be able to establish a connection. | Y |
EnableConnectionThreadPooling | True or False | If true then if NIO is available it will be available for interfaces to use it and then all reads/writes will be done via the Read/Write thread pools. If NIO is not available then a limited used write thread pool is used. This requires a realm restart before it takes effect. | Y |
MultiplexReadThreadPoolMaxSize | 4 to 2147483647 | The maximum number of threads to allocate to the multiplex thread pool to read multiplex sessions. Default is 100. | |
MultiplexReadThreadPoolMinSize | 4 to 2147483647 | The minimum number of threads to allocate to the multiplex thread pool to read multiplex sessions. Default is 4. | |
MaxUnauthorisedCount | 10 to 10000 | The maximum outstanding unauthorized connections per host name (or IP address if host name is unavailable). Default is 1000. | Y |
PendingTaskWarningThreshold | 100 to 100000 | The threshold at which the server starts to warn about the number of pending tasks. When the number of pending tasks is below the threshold, but over 100, the server logs a WARNING message. When the number is above the threshold, the server logs an ERROR message. When the server does not find available threads, it logs a message that the thread pool is exhausted. Default is 1000. | Y |
ReadThreadPoolMaxSize | 4 to 2147483647 | The maximum number of threads that will be allocated to the read pool. If NIO is not available this should be set to the maximum number of clients that are expected to connect. If NIO is available then it's best to keep this number under 20. | |
ReadThreadPoolMinSize | 4 to 2147483647 | This is the number of threads that will always be present in the read thread pool. If this is too small then the thread pool will be requesting new threads from the idle queue more often. If too large then the server will have many idle threads. | |
SchedulerPoolSize | 10 to 100 | The number of threads assigned to the scheduler, default is 10. | |
SlowTaskWarningTime | 1000 to 30000 | The time in milliseconds before reporting a slow-running task. The server logs the information at the WARNING log level and generates a thread dump. Default is 5000. | Y |
StalledTasksWarningTime | 10000 to 60000 | The time in milliseconds before reporting a stalled task. The system writes the information at the WARNING log level and generates a thread dump. When you change this configuration, the thread pool monitor interval is updated to monitor at the same time interval as the value you specify for this property. Default is 60000. | Y |
ThreadDumpInterval | 1000 to 600000 | The interval in milliseconds at which a thread dump is generated when the system reports slow or stalled tasks, or when the number of pending tasks exceeds the value of PendingTaskWarningThreshold. The thread dump interval applies across all thread pools in the JVM instance. Default is 60000. | Y |
ThreadDumpOnSlowTask | True or False | Whether to generate a thread dump when the system reports a slow task. Default is false. | Y |
ThreadIdleQueueSize | 5 to 50 | When threads are released from various pools since they no longer need them they end up in the idle queue. If this idle queue exceeds this number the threads are destroyed. Specify this number to be large enough to accommodate enough idle threads, so that if any thread pool requires to expand then it can be reused. If the number is too large then the server may have many idle threads. | |
WriteThreadPoolMaxSize | 5 to 2147483647 | The maximum number of threads that will be allocated to the write pool. If NIO is not available this should be set to the maximum number of clients that are expected to connect. If NIO is available then it's best to keep this number under 20. | |
WriteThreadPoolMinSize | 5 to 2147483647 | This is the number of threads that will always be present in the write thread pool. If this is too small then the thread pool will be requesting new threads from the idle queue more often. If too large then the server may have many idle threads. | |
Trace Logging Config | |||
TraceStoreLogLevel | OFF, INFO or TRACE | If you set the event tracing log level of a store to INFO, the system logs high-level event operations. If you set the level to TRACE, the system logs a verbose event trace. | |
TraceStores | A comma-separated list of stores for which to enable event trace logging. Set '*' to trace all stores or '*!a' to trace all stores except a specific one (a). You can also trace all stores in a specific folder - 'wm/Group/' or just a single store - 'a' | ||
TraceStoreLogSize | 1 to 100 | Specifies the size of a single trace log file for a store in MB. | |
TraceFolderLogSize | 1024 to 102400 | Specifies the size of the directory that contains the trace log files for the store in MB. | |
TransactionManager | |||
MaxEventsPerTransaction | 0 to 2147483647 | The maximum number of events per transaction, a 0 indicates no limit. | |
MaxTransactionTime | 1000 to No Max | Time in milliseconds that a transaction will be kept active. A large number will cause the server to retain these transactions in memory. | |
TTLThreshold | 1000 to 60000 | The minimum time in milliseconds, below which the server will not store the Transaction ID. | Y |