Universal Messaging 10.1 | Administration Guide | Universal Messaging Enterprise Manager | Administration Using Enterprise Manager | Realm Administration | Realm Configuration
 
Realm Configuration
Universal Messaging Realms can be configured based on a number of properties that are accessible both through the Universal Messaging Administration API as well as the Universal Messaging Enterprise Manager. Any changes made to the configuration properties for a Universal Messaging realm are automatically sent to the realm and implemented. This functionality offers major benefits to Administrators, since realms can be configured remotely, without the need to be anywhere near the actual realm itself. More importantly, multiple realms and clustered realms can also be automatically configured remotely.
This section describes the different configuration properties that are available using the Universal Messaging Enterprise Manager.
When you select a realm from the namespace, one of the available panels in the Enterprise Manager is labelled 'Config'. Selecting this panel displays various groups of configuration properties, with each group of properties relating to a specific area within the Universal Messaging Realm. Each group of properties contains different values for specific items.
Basic and Advanced Properties
There are currently a large number of configuration properties, and they are divided into two categories, namely Basic and Advanced. The properties in the Basic category are the most commonly used ones. The properties in the Advanced category will probably be less frequently used, and are intended for special cases or expert users.
When the Basic and Advanced categories are expanded, you will see a display of the configuration properties. Properties that have a similar effect are arranged into groups; for example, properties that determine when a client times out are contained in the group "Client Timeout Values":
Note that in the example shown, the group "Client Timeout Values" appears in both the Basic and the Advanced category. However, the properties "EventTimeout", "HighWaterMark" etc. belonging to this group appear only under the Basic category, whereas the properties "QueueAccessWaitLimit" etc. belonging to the same group appear only under the Advanced category. The properties in the Basic category are the ones which you will probably find most useful for your day-to-day work.
Configuration Groups
The configuration groups are :
1. Audit Settings - Values relating to what information is stored by the audit process
2. Client Timeout Values - Values relating to client / server interaction
3. Cluster Config - Values specific to the clustering engine
4. Comet Config - Values relating to the configuration of Comet
5. Connection Config - Values relating to the client server connection
6. Data Stream Config - Values relating to the configuration of Data Streams
7. DurableConfig - Values relating to usage of durables
8. Environment Config - Read only configuration values that relate to the system environment. These cannot be changed.
9. Event Storage - Values specific to how events are stored and retrieved on the server
10. Fanout Values - Values specific to the delivery of events to clients
11. Global Values - Values specific to the realm process itself
12. Inter-Realm Comms Config - Values relating to Inter-Realm communication
13. JVM Management - Values relating to the JVM the Realm Server is using
14. Join Config - Values specific to channel join management
15. Logging Config - Values specific to logging
16. Metric Config - Values relating to metric management
17. MQTT Config - Values relating to MQTT
18. Plugin Config - Values relating to Realm Plugins
19. Protobuf Config - Values relating to Protocol Buffers
20. Protocol AMQP Config - Values relating to the use of AMQP connections
21. Protocol MQTT Config - Values relating to the use of MQTT connections
22. Proxy Forward Config - Values relating to Proxy/Forwarding
23. RecoveryDaemon - Values relating to clients that are in recovery (i.e. replaying large numbers of events)
24. Server Protection - Values specific to server protection
25. Thread Pool Config - Values specific to the servers thread pools.
26. TransactionManager - Values specific to the transaction engine of the RealmServer
The table below describes the properties that are available within each configuration group. It also shows valid ranges of values for the properties and a description of what each value represents. The Adv. column shows "Y" if the property is in the Advanced category, whereas no entry indicates that the property is in the Basic category.
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
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.
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
DurableConfig
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 1000000, 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 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 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 4.
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
MultiplexReadThreadPoolMaxSize
4 to No Max
The maximum number of threads to allocate to the multiplex thread pool to read multiplex sessions. Default is 100.
MultiplexReadThreadPoolMinSize
4 to No Max
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 hostname (or IP address if host name is unavailable)
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 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
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
StalledTaskWarningTime
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 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
Double-clicking on the property you wish to modify in the configuration group will provide you with a dialog window where the new value can be entered. The values of configuration properties will be validated to check whether they are within the correct range of values. If you enter an incorrect value you will be notified.