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 DataGroup structure | |
DataGroupFailure | True or False | Log to the audit file any failed attempts to DataGroup structure | |
DataStream | True or False | Log to the audit file DataStream 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 No Max | 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 200. | |
LowWaterMark | 1 to No Max | 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 50. | |
QueueAccessWaitLimit | 200 to No Max | 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 No Max | 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 No Max | 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 | |||
BufferSize | 1400 to 1048576 | Size in bytes of the inter-realm buffer to use. If the nodes are connected using a high-speed network connection, we suggest using 8192. | Y |
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 | 10 to 1000 | The number of events sent to an async queue reader before the realm will commit. 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. | |
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 | Time to wait for the node to form in the cluster. Once this time has expired the behavior is defined by the DisconnectWhenNotReady flag. | |
DisconnectWhenNotReady | True or False | If the node has not formed in the cluster then disconnect the client. If true then the client will receive a disconnect, else the request will be queued. | |
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. | |
EnableSites | True or False | If enabled then the master selection takes into account the Prime Site. Warning: if used incorrectly a split brain scenario may occur, so please use with caution. | Y |
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 |
FilterEventsDuringRecovery | True or False | Only Applicable to JMS Engine Channels. Defines if we recover events that have already been consumed. If false then extra events may be sent to recovering realms for no real reason. | 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. | |
SecureHandshake | True or False | If true, when peers connect they will perform a secure handshake to ensure the connection is valid. This is the preferred and secure option. Disabling this would only be recommended in debug mode. This handshake requires an RSA provider to work. | |
SeparateLog | True or False | Create a separate log file for cluster events. Default is false. | |
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 effect overall performance, a large number may result in a cluster being to far out of sync. | Y |
TransactionSync | True or False | Make all transactional based events sync across the cluster. If true, transactional events may run slow but cluster state is guaranteed. | 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 |
BufferQueueSize | 10 to 1000 | Number of buffers to queue before we stop reading from the socket. If this is small we would block the connection, and performance may drop. The larger it is the more memory we use. | 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 |
EnablePriorityMessaging | True or False | Enables server side prioritization of messages sent to clients. Select true to enable priority messaging. | Y |
HandshakeTimeout | 1000 to No Max | The number of milliseconds that the server will wait for the session to be established. A small number will impact slow connections. Default is 1000, i.e. 1 second. | |
IdleDriverTimeout | 120000 to No Max | 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. | |
MaxBufferSize | 1024 to No Max | 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. | |
MaxBufferSizeClientSideCheck | True or False | If set to true, this enables client-side checks of the size of the events being sent against the connection's MaxBufferSize. This allows for better exception handling and less wasted bandwidth on the client side. Default is true. | |
MaxNoOfConnections | -1 to No Max | Sets the maximum concurrent connections to the server, -1 indicates no restriction, default is -1. Reducing this to a small number may cause client connections to be rejected. | |
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. | |
NIOSelectArray | True or False | Specifies that the selector thread will use an array-based structure instead of an iterator-based structure to determine if underlying NIO channels are ready. | Y |
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. It needs EnablePriorityMessaging to be enabled. | |
PriorityReadSpinLockMaxConnections | 0 to 8 | Maximum number of clients allowed to allocate high priority spin locks. It needs EnablePriorityMessaging to be enabled. | |
PriorityReadSpinLockTime | 1 to 10000 | Maximum number of clients allowed to allocate high priority spin locks. It needs EnablePriorityMessaging to be enabled. | Y |
PriorityReadType | 0 to 2 | If enabled then high priority sessions will be enabled to run spin locks waiting to read. It needs EnablePriorityMessaging to be enabled. | |
QueueHighWaterMark | 100 to No Max | 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 100. | |
QueueLowWaterMark | 50 to No Max | The number of events in the clients queue before the server resumes sending events. Must be less than the high water mark. Default is 50. | |
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. | |
whPeakTrailDelay | 100 to 5000 | When a peak is detected how long to stay in this state before returning to normal. If this is too large then latencies may be larger then expected. | |
Data Stream Config | |||
FanoutTaskQueueSize | 32 to 1024 | Sets the number of tasks that the FanOut Executor will have outstanding. Large values will consume more memory on the server, as events are cached in the fanout task queue waiting to be written. Large values allow batching to occur, potentially increasing publish/subscriber performance. | |
FanoutTraversalType | (Values as listed in next column) | The method to use when traversing connections to write events: In Order. This will traverse connections in the order that they connected to the server (oldest first). Round Robin. This will determine the order of delivery in a pseudo-fair fashion (the first connection to be delivered to will become the last, the second will become the first etc.) . Reverse Order. This will traverse connections in reverse older (oldest last). The default is In Order. | |
MaxSessionIdSize | 5 to 30 | Maximum size of the session ID used to uniquely identify the clients. This is currently unused. | Y |
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 |
ParallelFanoutThreshold | 10 to 10000 | Number of streams when the server will use parallel fanout. Small values reduce the amount of context switching of the fanout executor. Large values may result in less optimal fanout throughput. | Y |
SendInitialMapping | True or False | When any stream registered client connect sends the entire DataGroup Name to ID mapping | Y |
Durable Config | |||
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. | |
AutoMaintainOnFileLimit | True or False | Specifies whether the server will automatically perform maintenance on topic or queue stores when the MaintenanceFileSizeThreshold is reached. If false then the MaxFileSize will be ignored. | |
AutoMaintainSystemStores | True or False | Specifies whether the server will automatically perform maintenance on internal system file stores | |
AutoMaintenanceThreshold | 0 to 100 | Sets the percentage free before the server should run maintenance on the internal stores. 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. This is not applicable when AutoMaintainOnFileLimit is set to true. | |
CacheAge | 1000 to No Max | The length of time in ms that cached events will be kept in memory. The larger the value, the more memory will be utilized. Default is 86400000 ms, which is 24 hours. | Y |
EnableBufferingKey | True or False | If set to true, the server will use memory mapped files for last EID buffering. This will improve performance for all event stores. | 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 | |
EnableStoreReadBuffering | True or False | If true the server will buffer the reads from the store. This will increase replay performance greatly. Please note the server will need to be rebooted for this to take effect. | Y |
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 60000. | 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 percentage free before the server should run maintenance on the internal stores. The smaller the file size - maintenance will be run more often. The bigger it is – maintenance may take longer time. There are no performance issues with a big file except on startup when the stores need to be reloaded. AutoMaintainOnFileLimit has to be set to true. | |
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. | |
QueueDeliveryPersistencePolicy | (Values as listed in next column) | Sets the Queue Delivery Persistence Policy. The policy is a combination of (a) making the disk storage location persistent, i.e. recoverable after a server restart, or non-persistent, i.e. erased at a server restart, and (b) writing events to the disk storage location synchronously or asynchronously. If you choose a policy that uses a non-persistent storage location, unacknowledged but delivered queue events will be stored elsewhere until they are acknowledged or rolled back. The available policies are: No persistent/No sync: The storage location is not persistent, and writing events to disk is asynchronous. Persistent/No sync: The storage location is persistent, and writing events to disk is asynchronous. Persistent/Sync: The storage location is persistent, and writing events to disk is synchronous. The default is Persistent/No sync. This is also the recommended value for production environments. | Y |
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. Default is 1. | |
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 No Max | Specifies the number of events delivered to each Channel Iterator in a pre fetch. This allows the client to perform much faster by pre fetching 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 |
MaximumDelayInWrite | 1 to 5000 | The number of milliseconds an event will wait in a queue before it will be processed. If this number is to high then the first published event may take time to be delivered to the client. | Y |
ParallelBatchSize | 50 to 10000 | Specifies the number of connections to process in one batch per parallel thread. If this number is small then there may be adverse overheads. | |
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. | |
ParallelThreshold | 1 to 10000 | Specifies the number of connections to a channel before the server will use the parallel fanout engine. If this number is small then there maybe adverse overheads. | |
ParallelUseGlobalPool | True or False | If true all channels use a common pool else all channel have there own 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. Default is 10. | Y |
PublishExpiredEvents | True or False | Specifies whether to publish expired events at server startup. Default is true. | |
RoundRobinDelivery | True or False | Specifies whether to use a round robin approach for event delivery to the set of available event consumers. Default is false. | |
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. | |
SyncQueueDelay | 10 to 3600000 | Maximum number of milliseconds the queue publisher will be delayed. This can be used to slow down the queue publishers. | |
SyncQueuePublisher | True or False | If true then the queue publisher will be synchronized with the queue consumers. This allows flow control of queue publishers. If false then the value of SyncQueueDelay is not used. | |
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 parameter is set to false then the server will create a new byte[] and string for each joined event. | Y |
DisableExplicitGC | True or False | If enabled the server will call the Garbage Collector at regular intervals to keep memory usage down. If this is disabled then the garbage collection will be done solely by the JVM. | |
EnableCaching | True or False | If EnableCaching is set to True, the channel storage properties Cache On Reload and Enable Caching are set to the values specified by the client. If EnableCaching is 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. The default for the global value EnableCaching is False. | |
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 false. | |
HTTPCookieSize | 14 to 100 | The size in bytes to be used by nhp(s) cookies | Y |
NHPScanTime | 5000 to No Max | The number of milliseconds that the server will wait before scanning for client timeouts. Default is 5000, i.e. 5 seconds. | Y |
NHPTimeout | 2000 to No Max | The number of milliseconds the server will wait for client authentication. If this number is too large, the server may have unwanted connections. Default is 120000, i.e. 2 minutes. | Y |
NanoDelayBase | 10000 to 1000000 | This number represents the number of nanoseconds in a millisecond. This is by definition 1,000,000, but changing the value can be used to increase or decrease the internal delays used by Universal Messaging. If too large, the response will slow down, and if too small, CPU usage increases. | 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. | Y |
SendRealmSummaryStats | True or False | If true sends the realm's status summary updates every second. Default is false. | |
ServerStateFlush | 50 to 1000 | Specifies the time in milliseconds between scans to save the server's state files. If this parameter is too large then data may be lost if power to the machine is lost. | Y |
ServerTime | True or False | Allow the server to send the current time to the clients. Default is true. | |
StampDictionary | True or False | Place Universal Messaging details into the dictionary, default is false. If true, adds additional overhead to the server/client. | |
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. | |
StatusUpdateTime | 2000 to No Max | The number of milliseconds between status events being written to disk. Status events provide a history of the realm's state. A small value increases the server load. The default for this is Long.MAX_VALUE, i.e. never written to disk. | |
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 |
WriteDelayOnFail | True or False | If true then all writes will be delayed until the link is reconnected or the timeout is reached. | 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 |
ZoneDefaultCanRecv | True or False | The default value that the interest manager will assign to canRecv when a new channel is created | Y |
ZoneDefaultCanSend | True or False | The default value that the interest manager will assign to canSend when a new channel is created | Y |
JVM Management | |||
AutoThreadDumpOnExit | True or False | Defines if a thread dump is produced when the server exits. | |
EmergencyThreshold | 50 to 99 | The memory threshold when the server starts to aggressively scan for objects to release. If this value is too large the server may run out of memory. Default is 94, i.e. 94% | |
EnableJMX | True or False | Enable JMX beans within the server. If enabled the server will present JMX MBeans so it can be monitored by any JMX client. | |
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 |
ExitOnMemoryError | True or False | If true, the server will exit if it gets an out of memory exception. Setting this to false may result in unstable behavior if the server runs out of memory. Default is true. | Y |
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 |
JMXRMIServerURLString | String | JNDI Lookup URL for the JMX Server to use. | |
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. | |
ThrottleAllPublishersAtThreshold | True or False | Defines if publishers will be throttled back when the memory emergency threshold is reached. | Y |
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 No Max | 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 No Max | 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 No Max | 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 acknowledgement, 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 No Max | The default size of the log in bytes | |
DisplayCurrentThread | True or False | If enabled will display the current thread in the log message. | |
DisplayPackageName | True or False | If enabled will display the package name of the logger this message originates from in the log message. | |
EnableLog4J | True or False | If enabled will intercept log messages and pass to Log4J as well. This requires a restart before it will take effect. | |
EmbedTag | True or False | Used to control if the message tag is displayed in log messages. | |
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. | |
LogManager | 0 to 2 | The Log manager to use. 0 = ROLLING_OLD, 1 = ROLLING_DATE, 2 = ROLLING_NUMBER | |
RolledLogFileDepth | No Min to No Max | The number of log files to keep on disk when using log rolling. Oldest log files will be deleted when new files are created. | |
customDebugTag | String | The tag to mark Debug log entries with. | |
customErrorTag | String | The tag to mark Error log entries with. | |
customFatalTag | String | The tag to mark Fatal log entries with. | |
customInfoTag | String | The tag to mark Info log entries with. | |
customLogTag | String | The tag to mark Log entries with. | |
customTraceTag | String | The tag to mark Trace log entries with. | |
customWarnTag | String | The tag to mark Warn log entries with. | |
fLoggerLevel | 0 to 6 | 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 5. | |
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). | |
MQTT Config | |||
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. | |
EnforceAlphaNumericClientID | True or False | If true then the Client ID must consist solely of alphanumeric characters. The default is false. | |
DisconnectOnSecurityException | True or False | If true and if a Publish request fails then the client will be disconnected. The default is true. | |
IgnoreClientIDLength | True or False | If true then ignore the standard Client ID maximum length check of 23 characters. The default is true. | |
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. | |
Timeout | 1000 to 60000 | The number of milliseconds over the timeout value before the server will close the connection. | |
SupportZeroLength | True or False | MQTT 3.1.1 allows the server to auto-generate the Client ID if it has zero length. The default is true. | |
QoS0AsTransient | True or False | MQTT 3.1.1 allows the server to recover publish events with QoS greater than 0. By default Universal Messaging will recover all publish events. The default is false. | |
Strict | True or False | To be compliant with MQTT, stores must use the JMS Engine. This flag enforces this check. The default is true. | |
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. | |
DisconnectClientsOnPublishFailure | True or False | Defines whether the server should disconnect clients to inform them that publishing has failed. The default is true. | |
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 |
FilterProtobufEvents | True or False | Allows the server to filter on Protocol Buffers. Default is true | |
MaximumProtobufBuilders | 1 to No Max | The maximum number of builders per descriptor file when using the global (non-channel) caches. Default 4 | Y |
MinimumProtobufBuilders | 1 to 99 | The minimum number of builders per descriptor file when using the global (non-channel) caches. Default 2 | Y |
ProtobufDescriptorsInputDir | String | The folder to search for Protocol Buffer descriptor files to parse incoming messages. | Y |
ProtobufDescriptorsOutputDir | String | The folder for the server to put the combined Protocol Buffer descriptor file for serving out to clients. | Y |
UpdateDescriptorsInterval | 1000 to No Max | The time in milliseconds between checking the Protocol Buffer directory for updates. Default is 60000 | Y |
useChannelLevelProtobufCache | True or False | Setting this will alter how protobuf descriptors are cached. If set to true, use the channel-level protobuf cache. If set to false, the global-level cache will be used. The server must be restarted for this to take effect. | |
Protocol AMQP Config | |||
AllowUserTransformation | No Min to No Max | Will load a user class for event transformation. | Y |
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 No Max | 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 No Max | 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 4 | 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 | |||
Enable | True or False | If true the server will accept incoming MQTT connections | |
EnableAutoCreateTopics | True or False | If true the server will auto generate Topics for MQTT clients for subscriptions and publishing | |
IgnoreClientIDLength | True or False | If set to true ignore the standard clientID maximum length check of 24 characters | |
MaxBufferSize | 10000 to 100 000 000 | Sets the maximum buffer size that the MQTT client can send | Y |
SessionStateTTL | 0 to No Max | The number of milliseconds the state of a clientID is kept between connections. The default value is 3 days. Setting this value to 0 will store the clientID state until a clean session is received. | Y |
Timeout | 1000 to 60000 | The number of milliseconds over the timeout value before the server will close the connection | Y |
Proxy Forward Config | |||
BufferSize | 1024 to 20480 | The size of the buffer to use for the proxied events. If this value is small then there will be additional network traffic dealing with small packets. | Y |
FlushTimeout | 10000 to 120000 | Time to wait for a flush to complete. If this value is too large it may delay other clients from flushing the data. | Y |
RecoveryDaemon | |||
EventsPerBlock | 1 to No Max | 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 No Max | Number of threads to use for client recovery | |
Server Protection | |||
EnableFlowControl | True or False | Enables flow control of producer connections. Default is False. | |
FlowControlWaitTimeOne | 0 to 120000 | The time in milliseconds to hold a producing connection before processing its events. This is the longest level of waiting. | Y |
FlowControlWaitTimeTwo | 0 to 120000 | The time in milliseconds to hold a producing connection before processing its events. This is the second level of waiting. | Y |
FlowControlWaitTimeThree | 0 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. | Y |
Thread Pool Config | |||
CommonPoolThreadSize | 5 to 1000 | Maximum number of threads to allocate to the common thread pool | |
ConnectionThreadPoolMaxSize | 10 to No Max | 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 |
MaxUnauthorisedCount | 10 to 10000 | The maximum outstanding unauthorized connections per hostname (or IP address if host name is unavailable) | Y |
ReadThreadPoolMaxSize | 4 to No Max | 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 No Max | 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 | 1 to 100 | The number of threads assigned to the scheduler, default is 2. | |
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 No Max | 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 No Max | 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. | |
TransactionManager | |||
MaxEventsPerTransaction | 0 to No Max | 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 |