+

Search Tips   |   Advanced Search

Controlling the memory buffers used by a messaging engine

Every messaging engine manages two memory buffers that contain messages and message-related data. We can improve the interaction of a messaging engine with its data store by tuning the properties that set the sizes of the two buffers.

We can set the following properties to improve the interaction of a messaging engine with its data store:

sib.msgstore.discardableDataBufferSize

The size in bytes of the data buffer that the messaging engine uses to contain data for which the quality of service attribute is best effort nonpersistent. The default is 320000, which is approximately 320 kilobytes.

The discardable data buffer contains all data for which the quality of service attribute is best effort nonpersistent. That data comprises both data involved in active transactions, and any other best effort nonpersistent data that the messaging engine has neither discarded nor consumed. The messaging engine holds this data entirely within this memory buffer and never writes the data to the data store. When the messaging engine adds data to the discardable data buffer, for example when the messaging engine receives a best effort nonpersistent message from a client, the messaging engine might discard data already in the buffer to make space. The messaging engine can discard only data that is not involved in active transactions. This behavior enables the messaging engine to discard best effort nonpersistent messages.

Increasing the size of the discardable data buffer allows more best effort nonpersistent data to be handled before the messaging engine begins to discard messages.

sib.msgstore.cachedDataBufferSize

The size in bytes of the data buffer that the messaging engine uses to contain data for which the quality of service attribute is better than best effort nonpersistent and that is held in the data store. The default is 320000, which is approximately 320 kilobytes.

The purpose of the cached data buffer is to optimize the performance of the messaging engine by caching in memory the data that the messaging engine might otherwise have to read from the data store. As it writes data to the data store and reads from the data store, the messaging engine attempts to add that data to the cached data buffer. The messaging engine might discard data already in the buffer to make space.

sib.msgstore.transactionSendLimit

The maximum number of operations that the messaging engine includes in each transaction. For example, each JMS send or receive is an operation that counts towards the transaction send limit. The default is 100.

The messaging engine uses approximate calculations to manage the data it holds in the memory buffers. Neither of the DataBufferSize properties gives an accurate indication of the amount of memory that the messaging engine consumes in the JVM heap. The messaging engine can consume considerably more heap storage than the DataBufferSize properties indicate.

To set the properties of a messaging engine to improve its interaction with its data store, use the administrative console to complete the following steps:


Tasks

  1. In the navigation pane, click Service integration -> Buses -> bus_name -> [Topology] Messaging engines -> engine_name -> [Additional Properties] Custom properties.

  2. Type the name of the property that to set.

  3. Type the value that to set for that property.

  4. Click OK.

  5. Save changes to the master configuration.


What to do next

Remember: When we change any of these properties, the new values do not take effect until you restart the messaging engine.

  • Set tuning properties of a messaging engine
  • Tune the JDBC data source of a messaging engine
  • Set tuning properties by editing the sib.properties file
  • Service integration custom properties
  • Custom properties [Collection]
  • Custom properties [Settings]