File stores use a file system to preserve operating information
and to persist the objects that messaging engines need for recovery
in the event of a failure.
A file store is a type of message store
that directly uses files in a file system through the operating system. The
data storage in a file store is split into three levels: the log file,
permanent store file, and temporary store file.
Figure 1. The relationship between a messaging
engine and its file store
- Log file
- This file contains information about currently active transactions
and data that is not yet written to a store file. It is a circular
log and its file size is static while a messaging engine is running,
but can be changed if required. A restart of the messaging engine
is required for the changes to take effect. The size of the log file
limits the maximum size of a message that can be sent.
- Permanent store file
- This file contains permanent data that is retained after the restart
of the messaging engine, such as persistent messages, queue data,
and information about the storage and transmission of persistent messages.
- The permanent store file can be configured to have a maximum and
minimum size, or to be unlimited in size. The file can grow from the
minimum size (or as required in the unlimited case) but will never
shrink (even if the maximum size is set lower than its current size).
The file sizes can be changed in the administration console, but a
restart of the messaging engine is required for the changes to take
effect.
- Similar to a file system, when data is deleted from the store,
the data in the file is not deleted, only the directory information
is updated. This means that if a message is consumed, the message
data may still be present in the store file, but the directory information
that includes this data in the store is updated to reflect the fact
that it is deleted.
- Temporary store file
- This file contains temporary data that is not retained after the
restart of the messaging engine, such as nonpersistent messages that
were spilled to the file store to release memory from the JVM heap.
The temporary store file contents are truncated when the messaging
engine starts.
- The temporary store file can be configured to have a maximum and
minimum size, or to be unlimited in size. The file can grow from the
minimum size (or as required in the unlimited case) but will never
reduce (even if the maximum size is set less than its current size).
The file sizes can be changed in the administration console, but a
restart of the messaging engine is required for the changes to take
effect.
- Similar to a file system, when data is deleted from the store,
the data in the file is not deleted, only the directory information
is updated. This means that if a message is consumed, the message
data may still be present in the store file, but the directory information
that includes this data in the store is updated to reflect the fact
that it is deleted.
You can configure where the file store files must be placed. By
default, the file store uses a subdirectory in the following path: ${USER_INSTALL_ROOT}/filestores/com.ibm.ws.sib/${ME_NAME}.
The file store directory contains two other directories; the log directory
that contains the log file and the store directory that contains both
the PermanentStore and TemporaryStore files.