Universal Messaging 10.11 | Concepts | Commonly Used Features | Storage Properties of Channels and Queues
 
Storage Properties of Channels and Queues
Each channel or queue has a number of storage properties associated with it. You can set values for these properties when you create the channel or queue.
A summary of these properties can be seen below:
Property
Description
Auto Maintenance
Controls whether the persistent store of the channel or queue will be maintained automatically. When this property is activated, then any time thereafter when the auto-maintenance threshold values are reached for the store, the following events are removed from the persistent store:
*events which have been purged (i.e., marked as deleted but not yet physically removed)
*events that have reached their TTL
The auto-maintenance threshold values are defined globally for all stores in a realm by realm configuration properties such as AutoMaintenanceThreshold and MaintenanceFileSizeThreshold. See the Administration Guide for information on these properties.
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 that multi-file disk store, and any configuration properties that you set for auto-maintenance will be ignored for this store. For further information on single-file and multi-file disk stores, see the entry for Events per Spindle in this table.
Honour Capacity
Controls whether the channel / queue capacity setting will prevent publishing of any more data once the channel / queue is full.
If set to true, the client will get an exception on further publishes if a channel / queue is already full. A transactional publish will receive an exception on the commit call, a non-transactional publish will receive an asynchronous exception through the nAsyncExceptionHandler.
If set to false, the oldest event in the channel / queue will be purged to make room for the newest event.
Note:
If this property is set to true, the capacity can nevertheless be exceeded by a transaction if the capacity had not yet been reached at the beginning of the transaction.
Enable Caching
Controls the caching algorithm within the server, if you set caching to false, all events will be read from the file store. If true, then if server has room in memory, they will be stored in memory and reused.
If you want to use caching with a multi-file store, set both the EnableCaching server property for the Universal Messaging server instance and the Enable Caching storage property for the channel to true. If the EnableCaching server property is set to false, the Universal Messaging server instance always uses false as the value of the Enable Caching storage property, which disables caching for the channel.
Cache on Reload
When a server restarts, it will scan all file based stores and check for corruption. During this test the default behavior is to disable caching to conserve memory, however, in some instances it would be better if the server had actually cached the events in memory for fast replay.
Enable Read Buffering
Controls the read buffering logic for the store on the server.
This property is deprecated and will be removed in a future product release. The planned future behavior is that store read buffering will always be activated.
Enable Multicast
This activates multicast processing, thereby allowing multicast clients to receive events over multicast connections.
Read Buffer Size
If Read Buffering is enabled, then this function sets the size in bytes of the buffer to use.
This property is deprecated and will be removed in a future product release. The planned future behavior is that the store read buffer size will be set using the "StoreReadBufferSize" global realm configuration setting.
Sync Each Write
Controls whether each write to the store will also call sync on the file system to ensure all data is written to the Disk.
Sync Batch Size
Controls how often in terms of number of events to sync on the file system to ensure all data is written to the Disk.
Sync Batch Time
Controls how often in terms of time elapsed to sync on the file system to ensure all data is written to the Disk.
Priority
Sets a default priority for all events in the channel. The priority is a numeric value in the range 0 (lowest priority) to 9 (highest priority).
You can override the default priority for an event by setting its value explicitly.
For more information about event priorities, see the section Using Priority Messaging (for Java) or the corresponding language-specific section for other languages.
Stamp Dictionary
Configures whether events on this channel/queue should be stamped by the server. Possible values are:
*nChannelAttributes.DICTIONARY_STAMPING_ENABLED - event dictionary stamping is explicitly enabled
*nChannelAttributes.DICTIONARY_STAMPING_DISABLED - event dictionary stamping is explicitly disabled
*nChannelAttributes.DICTIONARY_STAMPING_DEFAULT - the server-wide configuration takes effect (default value in case the property is not set)
Events Per Spindle
Defines the maximum number of events allowed per file in a multi-file disk store for persistent channels or persistent queues. Each such disk store file is called a spindle. If all existing files are full and a new event is published, a new file will be created to append further events for this store.
If this value is set to 0 then the store will persist all events in a single-file disk store.
For more information on multi-file disk stores, including size recommendations for events per spindle, see the section Multi-File Disk Stores.