Some integrated file system object types can be journaled using i5/OS™ journaling support.
The object types supported are stream files, directories, and symbolic
links. The "root" (/), QOpenSys, and UDFS are the only file systems that support
journaling of these object types. Integrated file system objects can be journaled
using either the traditional system interface (CL commands or APIs) or by
using iSeries™ Navigator. You
can Start journaling and End journaling through iSeries Navigator,
as well as display journaling status information.
Note: Memory-mapped stream files,
virtual volume
files, and stream files that are used as
Integrated xSeries® Server for iSeries (IXS)
network storage spaces cannot be journaled. Directories that can contain block
special file objects cannot be journaled. Examples of these are: /dev/QASP01,
/dev/QASP22, and /dev/IASPNAME.
The following list summarizes journaling support in
the integrated file system:
- You can use both generic commands and APIs to perform journal operations
on the supported object types. These interfaces generally accept object identification
in the form of a path name, file ID, or both.
- Some journal operation commands, including Start Journaling, End Journaling,
Change Journaling and Apply Journaled Changes, may be performed on entire
subtrees of integrated file system objects. You can optionally use the include
and exclude lists that may use wild card patterns for object names. For example,
you can use the Start Journaling command to specify to start on all objects
in the tree "/MyCompany" that match the pattern "*.data" but
that excludes any objects matching the patterns "A*.data" and "B*.data".
- Journaling support on directories includes directory operations such as
adding links, removing links, creating objects, renaming objects, and moving
objects within the directory.
Journaled directories support an attribute
that can be set to cause new objects in the subtree to inherit the current
journaling state of the directory. When this attribute is turned on for a
journaled directory, all stream files, directories, and symbolic links that
are created or linked into the directory (by adding a hard link or by renaming
or moving the object) will automatically have journaling started by the system.
Note: Inherit
journaling attribute considerations:
- If you rename an object in the same directory it currently resides in,
journaling is not started for the object, even if the directory has the inherit
current journaling state attribute on.
- When a directory is moved to a directory which has the inherit journaling
attribute on, only that moved directory has journaling started for it if appropriate.
The objects within that moved directory are not affected.
- If an object is restored to a directory which has the inherit journaling
attribute on, journaling is not started for that object if the object has
ever been journaled.
- When using the Apply Journaled Changes (APYJRNCHG) command,
the current value of the inherit journaling attribute for any directories
is not used. Instead, any objects which are created as part of the apply have
journaling started or not based on what happened during the runtime activity
which is being applied.
- Object names and complete path names are contained within several journal
entries of integrated file system objects. Object names and path names are
National Language Support (NLS)-enabled.
- If the system ends abnormally, system initial program load (IPL) recovery
is provided for journaled integrated file system objects.
- The maximum write limit supported by the various write interfaces is 2
GB - 1. The maximum journal entry size if RCVSIZOPT (*MAXOPT2 or *MAXOPT3)
is specified is 4 000 000 000 bytes. Otherwise, the maximum
journal entry size is 15 761 440 bytes. If you journal your stream
file and have any writes that exceed 15 761 440 bytes, you need
to use the *MAXOPT2 or *MAXOPT3 support to prevent any errors from occurring.
For more information about the layout of various journal entries, there
is a C language include file, qp0ljrnl.h, shipped in member QSYSINC/H (QP0LJRNL),
that contains details of the integrated file system journal entry specific
data content and formats.