Restoring Audit Journal Receivers
Question: I save the audit journal receivers and free storage to reduce the space occupied by the journal receivers. I leave the journal receivers on the system (with storage freed) so that I can restore individual receivers. When working with other receivers for database journals, I was forced to restore several journal receivers when I simply wanted to recover from a single receiver. If I delete the audit journal receivers rather than free storage, must I restore the audit journals in sequence, or can I restore an individual receiver?
Answer: I am careful not to journal any files to the audit journal (QAUDJRN). This approach allows me to restore individual audit journal receivers without restoring the previous or following receivers. After restoring the individual receiver, I can use the Display Journal (DSPJRN) command to extract the information from the receiver into a database file.
When you restore an individual journal receiver, you can process the entries in the restored receiver. You must specify the receiver range (RCVRNG) on the DSPJRN command when you process entries from individual receivers.
Assume that *CMD (command auditing) has been turned on for the user profile QSECOFR and you want to review the commands entered. First, you use the Restore Object (RSTOBJ) command to restore the journal receiver for the time period that you wish to review. The DSPJRN command to extract the CD (command string) entries from the audit journal receiver AUDJRN0096 (found using the library search list) is shown in Figure 1.
You will note that I am using the *TYPE4 file formats. The *TYPE4 date format is a single 16-character date that includes the year (four digits), month, day, hour, minute, second, and millisecond. The *TYPE4 format is the Year 2000-compatible format. OS/400 includes field reference files for the *TYPE4 audit files in the QSYS library. The
name of the field reference files is QASYxxJ4, where xx is the two-character entry type associated with the audit entry. The entry type for command auditing is CD, so the field reference file name is QASYCDJ4. (File QSYS/QASYCDJ4 should exist on all V4R2 machines. There is a PTF that will add these files to V3R7 machines for Year 2000 compatibility.) If you have applications that process audit data, they should be converted to use the *TYPE4 format as part of your Year 2000 conversion. IBM has announced that future changes to audit data will be made to the *TYPE4 file formats.
Question: I have been told that auditing objects has a larger performance impact than auditing user actions. Our AS/400 has a few important database files, and we want to know if anyone changes these files. If I turn on auditing for these files that are very seldom updated, will my system’s performance be adversely impacted?
Is there a way to record the changes to database files?
Answer: There was a slight performance overhead associated with object auditing prior to V4R2. When the system value QAUDCTL included *OBJAUD (object audit), then OS/400 had to materialize every object accessed by a job to determine if the object should be audited.
The latest release of V4R2 includes a change that significantly reduces the overhead associated with this check so that auditing objects has a much lower performance impact. There is a single audit record created when an application opens a file. If the application opens the file for input and update, there will be a change audit record recorded even if the application does not update the file.
If you want more details about individual changes to a file, use the Start Journal Physical File (STRJRNPF) command to start journaling changes made to all members of a specific physical file. You can specify that only the after image or both the before and after images of records in the physical file be journaled.
The following command journals all changes to all members of file MYFILE1 (as found using the library search list) to journal JRNA in library JRNLIB. The IMAGES(*BOTH) requests that both the before and after images of updated records be written to the journal:
STRJRNPF FILE(MYLIB/MYFILE1) +
I recommend creating a separate journal (JRNA) for the changes to these important database files. Avoid using the audit journal to journal database file changes.
DSPJRN JRN(QAUDJRN) +
RCVRNG(AUDJRN0096 AUDJRN0096) +
Figure 1: The DSPJRN command extracts the CD (command string) entries from the audit journal receiver