JMS Appender Configuration

The use of the JMS Appender with the ActiveMatrix Message flow logger resulted in high CPU and memory utilization. JMS Appender uses an internal buffer to store log messages received from the application. Performance is also affected by the delivery mode; only the persistent mode of delivery having lower throughput used to be available.

Two configuration options are available to select between the two trade-offs:

  • Memory consumption versus thread blocking
  • Speed versus reliability of message delivery

Specifically, the following configuration parameters are available:

  • Log Buffer Size (logBufferSize="1000"): On receiving a burst of messages, the log buffer can get full, and block the application threads until the buffer is freed. This slows down the logging process. The size of the buffer must be configured considering the maximum number of simultaneous messages expected and the heap memory available to the application.

The default value of this parameter is set to 1000.

  • Non Persistent Delivery (nonPersistentDelivery="false"): JMS offers two delivery options, Persistent and Non Persistent. The Persistent option provides reliable delivery, but is slower due to the persistence layer. Non Persistent delivery offers higher speed, but with the possibility of occasional message loss, such as at broker restart. Selecting the Non Persistent delivery option can significantly improve performance.

The default value of this parameter is set to false.