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