Journaled integrated file system objects
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.
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 wildcard 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.
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, 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.
Parent topic:
Journaling overview
Related concepts
Stream file
Directory
Symbolic link
Related tasks
Starting journaling
Ending journaling
Changing journaling
Related information
Journal management
Journal entry information finder