Universal Messaging 10.1 | 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:
Auto Maintenance
Controls whether persistent store is maintained automatically (i.e. events reaching their TTL, or events which have been purged are cleared from the channel storage file.
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.
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.
Cache on Reload
When a server restarts it will scan all file based stores and check for corruption. During this test the default behaviour 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.
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.
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
Fanout Archive Target
Controls whether all events fanned out are written to an archive
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 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 parameter 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. 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.
For more information on multi-file disk stores, including size recommendations for events per spindle, see the section Multi-File Disk Stores.