5.3. Message Journal

5.3.1. Journal Description

The term Messaging Journal, or journal, refers to the on-disk storage for messages.
As its journal implementation, Red Hat Enterprise Messaging 3 uses a linear store that dynamically expands as required. There is one journal for each queue; it records each enqueue, dequeue, or transaction event, in order.
The terms journal and store both refer to the on-disk storage.
In contrast to MRG 2's legacystore module, which has circular disk journals of fixed size, the linear store used by MRG 3 adds files to each queue as needed from a pool of empty files called the Empty File Pool (EFP), and returns files which no longer contain records to the EFP. This allows for arbitrary sized journals, without a size limit.
Best performance is obtained when the EFP is populated with empty files that can be used for journals in advance. However, if the EFP is not present or is empty, the store creates and formats the files as needed (with a performance penalty). The used files are returned to the EFP.
The old store geometry parameters are no longer valid (file-size, num-jfiles). The EFP uses a default file size of 2MB per file.
The broker option --store-dir specifies where the store is located. The broker creates a "qls" (Qpid linear store) directory under the specified store dir, where it locates the Empty File Pool, the db4 database and the journals. If a specific --store-dir is not specified, the directory specified by --data-dir will be used, otherwise the default location is used.