Sun GlassFish Message Queue 4.4 Administration Guide

Optimizing File-Based Transaction Persistence

Because many activities can occur during a transaction, persisting a transaction's state over the complete life cycle of the transaction can adversely affect overall performance, especially when the imq.persist.file.sync.enabled property is set to true to avoid data loss in case of a system crash.

In version 4.4 Update 1, Message Queue provides a new transaction logging mechanism that can improve performance of transaction persistence. This new transaction log offers tuning parameters that can improve performance of file-based persistence for other objects, such as message payloads.

To enable this new transaction logging mechanism, set the imq.persist.file.newTxnLogenabled broker property to true.

After enabling the new transaction log, essential changes to the state of a JMS transaction are written to the transaction log. When the transaction is committed, all details regarding it are gathered and written to the persistent store. Additionally, the logging mechanism periodically performs a “checkpoint” operation to ensure that the persistent store and the transaction log are synchronized and that the log size remains manageable.

As a further refinement, the operation of the new logging mechanism is subject to the value of the imq.persist.file.sync.enabled broker property:

The tuning parameters supported by the new transaction logging mechanism are:

Information about these parameters can be found in Table 17–6.