Products | Versions |
---|---|
TIBCO Enterprise Message Service | - |
Not Applicable | - |
Resolution:
EMS server allocates memory for message headers in two different approaches:
1) When msg_pool_size is set and msg_pool_block_size is not set. Preallocate the given number of fixed-size structures as a single one-time only pool. When the pool is exhausted, the EMS server begins to allocate memory in single data structure blocks.
2) When msg_pool_block_size is set or msg_pool_size is not set. The msg_pool_block_size tells the EMS server to allocate groups of fixed-size objects whenever it needs a new data structure rather than allocating a single structure. The default value is 128, so if the EMS server needs a new message header, it will allocate a block of memory that holds 128 message headers rather than just one. When all 128 are used, the EMS server will allocate another block of 128. It can be set in the range of 32 to 64K.
In general we do not recommend use of msg_pool_size as it tends to cause the EMS server to start out larger than needed and to go back to single structure allocations once the pool is exhausted.
The default size of msg_pool_block_size is good for most cases. It should be tuned in some cases, e.g., very high traffic or customer are experiencing with degraded EMS server performance issue. One could start to tune it with a value of twice the average number of all messages passing through the EMS server at any given time.