Audit Trail Specification

The audit trail consists of a record of changes to the database. It is only created for audited databases and is used in the various forms of database recovery.

An audit trail specification describes the attributes of the audit trail. The specification is optional. If no specification appears, attributes are assigned by default.

All audited databases must include a restart data set definition. For information on declaring a restart data set, refer to Data Set Declaration, and Structure Formats.

The following diagrams illustrate the syntax for specifying the audit trail attributes:

<audit trail specification>

── AUDIT TRAIL ─┬───────────────────────────────────────────────┬──────┤
                ├──────────────┬─ ( <audit trail attributes> ) ─┘
                └─ ATTRIBUTES ─┘

<audit trail attributes>

  ┌◄──────────────────────────┬──────┬───────────────────────────┐
  │                           └◄─ , ─┘                           │
──┴─┬─/1\─ AREAS = <unsigned integer> ─────────────────────────┬─┴─────┤
    ├─/1\─┬─ AREASIZE ───┬─ = <unsigned integer> ─┬────────────┤
    │     └─ AREALENGTH ─┘                        ├─ SEGMENTS ─┤
    │                                             ├─ BLOCKS ───┤
    │                                             └─ BYTES ────┤
    ├─/1\─ BLOCKSIZE = <unsigned integer> ─┬───────────────────┤
    │                                      ├─ SEGMENTS ────────┤
    │                                      ├─ WORDS ───────────┤
    │                                      └─ BYTES ───────────┤
    ├─/1\─ BUFFERS = ─┬─── < unsigned integer > ───────────────┤
    │                 └──── AUTOMATIC ─────────────────────────┤ 
    ├─/1\─ CHECKSUM ─┬─────────────────────────────────────────┤
    │                └─ = ─┬─ FALSE ───────────────────────────┤
    │                      └─ TRUE ────────────────────────────┤
    ├─/1\─ DATAEXCHANGE ───────────────────────────────────────┤
    ├─/1\─ DUPLICATED ─┬───────────────────────────────────────┤
    │                  ├─ ON <secondary audit media> ──────────┤
    │                  ├─ SET ─┬───────────────────────────────┤
    │                  │       └─ (<secondary audit media>) ───┤
    │                  └─ RESET ───────────────────────────────┤
    ├─/1\─┬─ FORCE──────┬──────────────────────────────────────┤
    │     └─ DONTFORCE ─┘                                      │
    ├─/1\─<primary audit media>────────────────────────────────┤
    ├─/1\─ RESETFAMINDEX ──────────────────────────────────────┤
    ├─/1\─ SECTIONS = <unsigned integer>───────────────────────┤
    ├─/1\─ SETFAMINDEX ────────────────────────────────────────┤
    ├─/1\─┬─ UPDATE EOF ─┬─ = <unsigned integer> ─┬────────────┤
    │     └─ UPDATE-EOF ─┘                        └─ BLOCKS ───┤
    ├─/1\ ─ VSS3OPTIMIZE ─┬────────────────────────────────────┤
    │                     └─ = ─┬─ FALSE───────────────────────┤ 
    │                           └─ TRUE ───────────────────────┤                
    └──────────────────────────────────────────────────────────┘
    

<primary audit media>

──┬─<disk/pack>─┬───────────────────────────────────────────────────┬──┤
  │             └─<disk audit option>───────────────────────────────┤
  └─ <tapes> ───┬───────────────────────────────────────────────────┤
                └─<tape audit option> ──────────────────────────────┘

<secondary audit media>

──┬─<secondary disk/pack>─┬─────────────────────────────────────────┬──┤
  │                       └─<disk audit option>─────────────────────┤
  └─ <tapes> ───┬───────────────────────────────────────────────────┤
                └─<tape audit option> ──────────────────────────────┘

<tapes>

─── KIND = ───── TAPE ─┬────────────────────────────────┬──────────────┤
                       └─ ( ──<audit tape density>── ) ─┘ 

<disk/pack>

  ┌◄─────┬──────┬───────┐
  │      └◄─ , ─┘       │
──┴─┬─/1\─<disk kind>─┬─┴──────────────────────────────────────────────┤
    └─/1\─<disk name>─┘

<disk kind>

──┬──────────┬─┬─ DISK ─────┬──────────────────────────────────────────┤
  └─ KIND = ─┘ ├─ PACK ─────┤
               └─ DISKPACK ─┘

<disk name>

──┬─ PACK ───────┬─ = ──<family name>──────────────────────────────────┤
  ├─ DISKPACK ───┤
  ├─ PACKNAME ───┤
  └─ FAMILYNAME ─┘

<disk audit option>

  ┌◄──────────────────────────┬──────┬────────────────────────────┐
  │                           └◄─ , ─┘                            │
──┴─┬─/1\─ ALTERNATE ─┬─────┬─┬─<alternate disk/pack>───────────┬─┴─────┤
    │                 └─ IS ┘ └─<tapes> ─┬──────────────────────┤ 
    │                                    └<scratch pool option>─┤ 
    ├─/1\─┬─<verify option>─────────────────────────────────────┤
    │     └─<copy option>───────────────────────────────────────┤
    └─/1\─ SECURITYGUARD = <file title> ────────────────────────┘

<alternate disk/pack>

<secondary disk/pack>

──┬─ DISK ──────────────────────────────┬──────────────────────────────┤
  ├─ PACK ───────┬─┬────────────────────┤
  ├─ DISKPACK────┘ └─  = <family name> ─┤
  ├─ PACKNAME ───┬──── = <family name> ─┘
  └─ FAMILYNAME ─┘

<tapes>

──── TAPE ─┬────────────────────────────────┬──────────────────────────┤
           └─ ( ──<audit tape density>── ) ─┘
   

<audit tape density>

── DENSITY ── = ─── <density mnemonic> ───­─────────────────────────────┤

<tape audit option>

  ┌◄────────────────────┬──────┬────────────────────┐
  │                     └◄─ , ─┘                    │
──┴─┬─/1\─ DESIGNATED <serial numbers> ───────────┬─┴──────────────────┤
    ├─/1\─ <scratch pool option> ─────────────────┤
    └─/1\─<verify option>─────────────────────────┘

<serial numbers>

──┬─ <unsigned integer> TO <unsigned integer> ─┬───────────────────────┤
  └─ <string> TO <string> ─────────────────────┘

<verify option>

── VERIFY ─┬─────────────────────┬─────────────────────────────────────┤
           └─ JOB ──<file title>─┘

<copy option>

──┬─ COPY ───────────────────────────────────────────────────┬─ TO ────────►
  └─ QUICKCOPY ─┬──────────┬─┬───────────────────────────────┤
                └─ APPEND ─┘ └─ MAXFILESPERTAPE = <integer> ─┘
►──┬─TAPE ───┬────────────┬──────────────────────────────────────────┬────►
   └ TAPESET ┘            │     ┌◄───────────── , ─────────────┐     │
                          └─ ( ─┴─┬─/1\─<tape length>────────┬─┴─ ) ─┘
                                  ├─/1\─<copy tape density>──┤ 
                                  ├─/1\─AUDITENCRYPT─────────┤
                                  └─/1\─┬─ COMPRESSED ───────┤       
                                        └─ NONCOMPRESSED ────┘ 
►─┬───────────────────────┬────────────────────────────────────────────────►
  └─<scratch pool option>─┘
►─┬───────────┬─┬───────────────────┬─ AND REMOVE ─┬────────────────────┬──┤
  ├─ 1 TIMES ─┤ └─ FORWARD COMPARE ─┘              └─ JOB <file title> ─┤
  ├─ 2 TIMES ─┘                                                         │
  └─ NOZIP ─────────────────────────────────────────────────────────────┘

<tape length>

──<unsigned integer>───────────────────────────────────────────────────┤

<copy tape density>

── DENSITY ── = ─── <density mnemonic> ───────────────────────────────────┤

<scratch pool option>

── SCRATCHPOOL ── = ──<scratch pool name>──────────────────────────────┤

<file title>

──┬──────────────────────┬─<file name>─┬─────────────────────┬─────────┤
  ├─ * ──────────────────┤             └─ ON ──<family name>─┘
  └─ ( ──<usercode>── ) ─┘

<file name>

──┬─ = ──────────────────────────┬─────────────────────────────────────┤
  │ ┌◄────────/ ───────┐         │ 
  └─┴─/12\─<identifier>─┴─┬──────┤
                          └─ /= ─┘

<identifier>

──<letter>─┬────────────────────────────────────────┬──────────────────┤
           ├───────────────────────────┬─┬─<letter>─┤
           │ ┌◄──────────────────────┐ │ └─<digit>──┘
           └─┴─/15\─┬─<letter>─────┬─┴─┘
                    ├─<digit>──────┤
                    └─ - (hyphen) ─┘

The following table explains the elements of the syntax diagrams:

Option

Description

AREAS, AREASIZE, and AREALENGTH

Disk or pack files are divided in areas. Areas are only allocated as they are needed; thus, a potentially large file can be small initially and grow as necessary. The user can control the maximum amount of disk space allocated to a file by using the AREAS and AREASIZE (or AREALENGTH) options. The maximum file size is 2**28 – 1 (268435455) segments. The maximum AREASIZE value is 2**20–1 (1,048,575) segments.

AREAS specifies the maximum number of areas to be assigned to the file. The maximum value allowed for AREAS is 1000.

The user can specify the length of an area using the AREASIZE (or AREALENGTH) option. The default option for AREASIZE is BLOCKS. The default value is 10 blocks. The number of blocks per audit area must be larger than the number of audit buffers.

BLOCKSIZE

The records in the audit trail are normally blocked. You can control the size of a block using the BLOCKSIZE option. BLOCKSIZE can be specified as one of the following:

 
  • SEGMENTS: The maximum value is 2184 segments. SEGMENTS can define an audit buffer size that is larger than that defined by the BYTES option.

  • WORDS: This is the default option. If you do not define a block size, the audit trail uses a default block size of 9000 words. The maximum value is 65460 words.

  • BYTES: The maximum value is 65535 bytes.

The default value is 9000 words.

The Enterprise Database Server can generate audit blocks up to four times larger than the audit block size declared in the database DASDL.

Ensure that the audit block size declared does not exceed the maximum I/O length for the tape device to which the audit file is copied. Enter the OL MT <unit number> command to find the maximum I/O block size allowed.

The audit block size can be examined while the database is running by using the Visible DBS command SM STATUS. It can be changed by using the SM AUDIT BLOCKSIZE command. For additional information, refer to the Visible DBS commands in the Enterprise Database Server Utilities Operations Guide.

BLOCKSIZE (cont.)

The audit block size specified in DASDL can be as large as 2182 segments (up to 65460 words).

If the declared audit block size is greater than the declared area size, the Accessroutines reduces the internal audit block size to the audit area size minus one segment.

If you are using COPYAUDIT without the QUICKCOPY option, the resulting block sizes can exceed that of the physical tape device, resulting in errors from COPYAUDIT. If errors occur, it is recommended that you use one of the following two alternatives:

  • The audit file can be copied to tape using the QUICKCOPY option.

  • The audit block size can be reduced to no more than one-fourth the maximum block size of the tape device being used. The audit block size can be reduced either by a DASDL update or by issuing an SM AUDIT BLOCKSIZE command to the running database.

BUFFERS

With XE features, the audit trail BUFFERS option specifies the number of internal audit buffers allowed when the database is running. If the BUFFERS option is not specified, AUTOMATIC is the default value. Under the AUTOMATIC value, the Accessroutines automatically calculates the number of audit buffers to be between 3 and 11, and the number of audit buffers is always less than the number of blocks per area. For example, if the number of blocks per area is 10, the default number of audit buffers is 9. If the number of blocks per area is greater than 11, the default number of audit buffers is 11.

Values for the BUFFERS option range from 3 through 256. If more than 25 sections are specified, only 256 buffers are used. Consider increasing the number of buffers when audit trail statistics indicate that the wait time for audit buffers is increasing.

A change in the value of the BUFFERS option requires a DASDL update and a control file update.

The number of audit buffers can also be changed dynamically while the database is running by using the AUDIT BUFFERS Visible DBS command.

If you decide to change the value for audit buffers by way of a DASDL update after you change the value by using the AUDIT BUFFERS Visible DBS command, you must perform a control file override. The override enables the system to recognize that the DASDL update value takes precedence over the value you specified with the Visible DBS command.

For additional information about the AUDIT BUFFERS Visible DBS command and the DMCONTROL OVERRIDE AUDITBUFFERS option, refer to the Enterprise Database Server Utilities Operations Guide.

CHECKSUM

CHECKSUM is used to detect I/O errors. A checksum is a value computed for each block by applying an equivalence operator to each word in the block. When the block is written, a checksum is computed and stored in a checksum word appended to the end of the block. When the block is read, the checksum is recomputed and the result is compared to the stored value. A checksum error occurs if the two values are not equal. If the recovery process encounters a checksum error while reading the primary audit, it automatically switches to the secondary audit, if any. When an irrecoverable checksum error occurs, the recovery process terminates abnormally.

The CHECKSUM attribute is set by default. It is reset by assigning it the value FALSE.

The default value is TRUE.

DATAEXCHANGE

When DATAEXCHANGE is specified, a special audit image is recorded when either of the following occurs:

  • A record of an embedded structure is modified or created.

  • An ASSIGN statement is performed.

The audit image will include the data record image of the related structure. This is an informational image and is not used for RECOVERY purposes.

DUPLICATED

When DUPLICATED is specified, two copies of the audit trail are written by the Accessroutines. If recovery encounters an error while processing the primary audit, it will automatically switch to the secondary audit.

The primary and secondary audit trails are identical. They contain exactly the same records, and when a reel switch is required on either audit trail, a reel switch occurs for both.

The attributes of the secondary audit trail are specified in similar fashion to those of the primary audit. Some attributes of the secondary audit, such as BLOCKSIZE and CHECKSUM, must be identical to those of the primary audit. These attributes cannot be specified for the secondary audit; they are derived from the attributes of the primary audit. Other attributes of the secondary audit can be stipulated by the user.

If DUPLICATED is specified, and ON, SET, or RESET does not follow DUPLICATED, or if DUPLICATED and SET are specified but no secondary audit medium is specified for SET, then the attributes of the secondary audit trail are identical to those of the primary audit trail.

The ON <secondary audit media> clause assigns the secondary audit trail to tape, disk, or pack. When PACK is stipulated but no family name appears, the audit trail is assigned to a system resource pack. When a family name follows DISKPACK, PACK, or FAMILYNAME, the audit trail is placed on the named pack family.

If the SET <secondary audit media> clause is selected, then the attributes in a format similar to the other attribute declarations in DASDL can also be specified.

The default value is RESET.

The tape audit option and disk audit option are used to control other audit trail attributes. These options are discussed in the following text.

FORCE/DONTFORCE

The FORCE/DONTFORCE option is used to change the behavior of the Accessroutines audit file handling following an audit file switch.

The traditional mode of operation is to force two controlpoints to be audited to the new audit file as quickly as possible following the switch. This, in turn, allows the just closed audit file to be copied by COPYAUDIT and improves recovery times because the existence of those two controlpoints prevents recovery operations from having to go back to the just closed audit file. This default behavior is the same as setting the FORCE option.

The DONTFORCE option causes the execution of COPYAUDIT to be delayed until the normal syncpoint/controlpoint activity causes two controlpoints to occur. Using the option can improve the overall database performance, especially if the database uses a large ALLOWEDCORE setting.

The default is FORCE.

This option works the same as the Visible DBS command AUDIT CLOSE SET FORCE/DONTFORCE, which is described in the Enterprise Database Server for ClearPath MCP Utilities Operations Guide..

Note: The DMCONTROL OVERRIDE option is necessary to allow the DASDL syntax to take precedence over option changes made through the Visible DBS command.

The syntax for overriding the Visible DBS setting is:

RUN $SYSTEM/DMCONTROL ("DB= <dbname> OVERRIDE
CONTROLPOINTAGEING")

For more information on CONTROLPOINTAGEING, see the Enterprise Database Server for ClearPath MCP Utilities Operations Guide.

<primary audit media>

The primary audit media option controls the location of the primary audit trail. In the absence of any specification, the audit trail is assigned to disk. If DISKPACK or PACK is specified and no family name appears, the audit trail is placed on a system resource pack. When a family name follows DISKPACK or PACK, the audit trail is placed on the indicated pack family. The audit trail can also be assigned to a named pack by using the PACKNAME or FAMILYNAME option with KIND = DISKPACK or KIND = PACK. The PACKNAME and FAMILYNAME options are synonymous. The default value is KIND = DISK.

RESETFAMINDEX

RESETFAMINDEX enables the MCP to assign rows using a round-robin method.

SETFAMINDEX

SETFAMINDEX forces all rows of a sectioned audit file to be assigned to the same family.

SECTIONS

The SECTIONS option specifies the number of section files in which the audit trail is to be divided. The default value is 1 (a single audit file, unsectioned). The value can be an integer in the range 1 through 63.

Dividing the audit trail in several sectioned files allows the I/O operations to the audit trail to be spread across several files. Sectioning of the audit trail, along with an improved internal locking and buffering scheme, can help relieve any audit trail bottlenecks impeding overall database throughput.

A change in the value of the SECTIONS option requires a DASDL update and a control file update.

 

You can also dynamically change the number of audit trail sections while the database is running by using the AUDIT SECTIONS Visible DBS command.

If you decide to change the value for audit buffers by way of a DASDL update after you change the value by using the AUDIT SECTIONS Visible DBS command, you must perform a control file override. The override enables the system to recognize that the DASDL update value takes precedence over the value you specified with the Visible DBS command.

For information about the AUDIT SECTIONS Visible DBS command or the DMCONTROL OVERRIDE AUDITSECTIONS option, refer to the Enterprise Database Server Utilities Operations Guide.

Guideline: Designate a SECTIONS value that is one or two more than the number of central processing units (CPUs) on your machine. For example, if you have a four‑processor configuration, designate five or six audit file sections. You can later increase or decrease this number to optimize audit I/O.

When the number of audit trail sections is greater than 1, the primary audit trail—and the secondary audit trail if it is specified—must be on disk or disk pack. If TAPE is specified for either the primary or secondary audit trail, the number of SECTIONS is forced to 1 and a warning is issued.

Whether the number of audit trail sections is 1 or greater, the physical attributes—such as BLOCKSIZE, AREASIZE and AREAS—apply to each section.

Each audit file (for example AUDIT4) is divided in the number of physical audit files designated by the SECTIONS option.

The first section of an audit file retains the usual naming convention:

  • <database name>/AUDIT<n> (primary)

  • <database name>/2AUDIT<n> (secondary)

SECTIONS (cont.)

Subsequent audit sections are titled as follows:

  • <database name>/AUDIT<n>/<s> (primary audit)

  • <database name>/2AUDIT<n>/<s> (secondary audit)

The variable <n> is the audit file number. Audit file numbers start with the number 1.

The variable <s> is a 1‑digit to 2‑digit unsigned section identification number. The audit section number starts with the number 1 on the second section.

For example, for a 5‑section audit file, the primary audit titles for audit file 23 are

(TESTUC)TESTDB/AUDIT23 
(TESTUC)TESTDB/AUDIT23/1 
(TESTUC)TESTDB/AUDIT23/2 
(TESTUC)TESTDB/AUDIT23/3 
(TESTUC)TESTDB/AUDIT23/4

The secondary audit titles for audit file 23 are

(TESTUC)TESTDB/2AUDIT23  
(TESTUC)TESTDB/2AUDIT23/1 
(TESTUC)TESTDB/2AUDIT23/2 
(TESTUC)TESTDB/2AUDIT23/3 
(TESTUC)TESTDB/2AUDIT23/4

Guideline: Put your disk audit files on a multidisk family to spread out the I/O operations. For optimal audit I/O performance, plan to allot at least one pack spindle per audit trail section.

The PRINTAUDIT and COPYAUDIT utilities use the new Enterprise Database Server library, SYSTEM/DMAUDITLIB, to handle multiple audit file sections. For additional information about multiple audit file sections and these utilities, refer to the Enterprise Database Server Utilities Operations Guide.

UPDATE EOF

The UPDATE EOF attribute is meaningful only if the audit file is on disk or pack. Block 0 (zero) of the audit file contains a pointer to the end of the audit. UPDATE EOF controls how often this end-of-file pointer is updated on disk. When recovery is necessary, the last audit record is located by reading the audit trail until the end of the last allocated row is encountered or a special “audit stopper pattern” is found. The stopper pattern is written in the first four words of each audit block, except the first block of any row, and is overwritten as each block is written and moved to the end of the next block. This pattern positively identifies the end of the audit. If recovery finds a checksum error or timestamp discontinuity, an error results.

The default value is 100 blocks.

VSS3OPTIMIZE

VSS3OPTIMIZE supports MCP 4096-byte physical sector disks.

The VSS3OPTIMIZE option, when set to TRUE, aligns structures on block boundaries that are multiples of 660 words. The specified BLOCKSIZE option value must be a multiple of 22 segments.

For an existing audited database, setting VSS3OPTIMIZE to TRUE causes an audit file switch. New audit is written to a new file that is optimized for VSS-3.

For an existing audited database with the VSS3OPTIMIZE set to TRUE, resetting the option to FALSE causes an audit file switch. New audit is written to a new file that is not optimized for VSS-3.

ALTERNATE

If the ALTERNATE option is specified, the Accessroutines automatically switches the primary or secondary audit to the alternate disk or tape location when there is insufficient space to allocate a new row for the audit trail. If an I/O timeout occurs, no switch occurs.

If the alternate location is tape, then at the completion of each reel created on the alternate device, the Accessroutines attempts a Switchauditback process to switch back to the normal audit media. Switchauditback attempts to open the audit file on the normal device, with the following results:

  • If the file is opened successfully, no operator response is necessary and the audit returns to the normal audit media.

  • If the file does cannot be opened, the operator must respond with OF and the audit trail is written to the alternate device.

You can use the Visible DBS command AUDIT to control whether the Accessroutines attempts to switch back to the normal audit media.

When you use the ALTERNATE option for sectioned audits (the value for SECTIONS is greater than 1), you must specify a disk or pack as the alternate media. If you specify a tape, audit sections temporarily reverts to 1 until the audit trail can switch back to disk or pack media.

The recovery process looks for audit files on tape if the audit files are not present on disk or pack. The audit files on tape must be data files and not library maintenance files. Valid audit files can be made by the Accessroutines or by the COPYAUDIT program, which can be used to copy audit files between any two audit media.

<verify option>

The verify option causes the Accessroutines to initiate a job which, in turn, runs a program called COPYAUDIT whenever an audit file switch occurs. This program verifies that the audit file passes certain consistency checks and that it can be used in both directions without errors. The COPYAUDIT program verifies that the audit block serial numbers (ABSNs) and audit block timestamps are all present and in the correct sequence. If there is a checksum associated with the audit file, the checksum is also verified. By default, the name of the Work Flow Language (WFL) job is DATABASE/WFL/COPYAUDIT. A different file title can be specified in DASDL using the JOB clause of the verify option. If the WFL job file is not present, a NO FILE condition occurs on an audit file switch. All update programs wait until the NO FILE condition is resolved.

<copy option>

If the copy option is designated without the NOZIP option, the system automatically copies disk or pack audit files to tape and then removes the original audit file. This option minimizes the amount of space required for audit files on disk or pack. Recovery automatically accepts audit files directly from tape, even though the normal audit medium is disk or pack. The audit tapes can be made by either the Accessroutines or the COPYAUDIT program, but not by library maintenance.

If the copy option is designated with the NOZIP option, the audit files are not automatically copied.

<copy option> (cont.)

Use the keyword TAPESET when you want the COPYAUDIT program to use the tape drive Fast Access capabilities to quickly position tapes when copying files from disk to tape. The TAPESET keyword can be used only with the QUICKCOPY command. Also, when COPYAUDIT runs, the tape drives must be identified by the MCP as Locate Fast Access-capable for this option to be effective.

You can use the <tape length> parameter to specify the length of the audit tape. If a tape length is designated, the length is used by the Accessroutines formula to calculate when an automatic audit file switch should occur. The tape length is measured in feet. DASDL rounds the value specified down to the nearest 100. For example, if you specify 571, DASDL uses 500 as the value.

At audit file switch time, the Accessroutines forces two controlpoints to occur as soon as possible after the new audit file is opened, so that Abort or halt/load recovery does not use the previous audit file. After the second controlpoint occurs, a job is initiated, which runs SYSTEM/COPYAUDIT to copy the previous audit file to tape. Up to two copies can be made simultaneously. The COPYAUDIT program verifies the audit file as it is copying it for audit block serial number (ABSN) and timestamp continuity, and for correct checksums, if any. Then the COPYAUDIT program reads the tape copy, or copies, backward verifying them in that direction also. If no errors are encountered, the COPYAUDIT program removes the original audit file. If the WFL job file is not present, a NO FILE condition occurs on an audit file switch. All update programs wait until the NO FILE condition is resolved.

COPYAUDIT is only initiated only at audit file switch time. It is not initiated each time the database is closed. This is done for two reasons. It uses tape reels more efficiently, and it enables the Accessroutines to extend the existing audit trail. Failure to extend the audit trail would lead to poor disk utilization because the audit file is not crunched.

It is not valid to request both the verify option and the copy option, because all the checks made for the verify option are also made for the copy option. COPYAUDIT will refuse to copy an audit file to tape if the audit file exceeds the tape reel size, because there is no provision in audit and recovery for handling reel switching of audit tapes.

<copy option> (cont.)

By default, the name of the file containing the WFL job is DATABASE/WFL/COPYAUDIT. The default title does not include a pack specification. Normal family substitution locates the DATABASE/WFL/COPYAUDIT job. If the task that zips the DATABASE/WFL/COPYAUDIT job is running with no family specification, the default family is DISK. If there is no pack named DISK on the system, a no file condition occurs. To prevent this problem from occurring, specify the title and location of the DATABASE/WFL/COPYAUDIT job in the DASDL. Use the JOB clause of the copy option to specify the file title and location.

Designating the file title and location is also useful when user specifications are required. User specifications include the following:

  • Class

  • Family

  • Usercode

  • Fetch

  • Job attribute

The usercode specification is useful when the files that need to be accessed reside under a particular usercode.

If the default title is used, or if the user‑specified JOB clause has no family name, the following steps are performed to locate the COPYAUDIT WFL deck:

  • If the DASDL description specifies a family name for the Accessroutines code file, that family is searched first.

  • If the WFL deck cannot be located on that family, or if the Accessroutines family is not specified, then the family of the usercode that first opened the database is used for family substitution.

  • If the WFL deck still cannot be located, then DISK is used.

If all the preceding steps do not locate the COPYAUDIT WFL deck, a warning message is issued and the COPYAUDIT program is not initiated.

<copy option> (cont.)

When you use XE features and the value for SECTIONS is greater than 1, use the QUICKCOPY option to copy the sectioned audit file to a quickcopy tape. If you specify COPY when the number of sections is greater than 1, a warning is issued indicating that the copy will be done by QUICKCOPY instead.

Note: A database with sectioned audit files cannot be recovered directly from tape. You must first copy audits from the quickcopy tape to disk before the audits can be used for recovery.

The MAXFILESPERTAPE option still defaults to 9999. When QUICKCOPY is specified and MAXFILESPERTAPE is greater than 1, the APPEND option still defaults to SET. To reset APPEND, use QUICKCOPY without specifying APPEND and set MAXFILESPERTAPE to 1.

QUICKCOPY copies audit trail section files to tape as one file. In other words, all audit section files belonging to one logical audit file are treated as one logical audit file. The single logical audit file can span more than one quickcopy tape volume. Audit tape titles remain the same. For more information about copying audit files, refer to the Enterprise Database Server Utilities Operations Guide.

<tape length>

Refer to “Controlling Audit File Size” later in this section for an example showing how to calculate the tape length.

When you use XE features and the value for SECTIONS is greater than 1, the value for the tape length option is ignored.

If the SECTIONS option is not specified, then the designated value for tape length, if specified, is used to determine the size of the audit trail so that it fits on the specified length of tape.

<density mnemonic>

For a complete list of available audit and copy tape densities, refer to the File Attributes Programming Reference Manual.

<copy tape density>

For a complete list of available tape densities, refer to the File Attributes Programming Reference Manual.

The copy tape density option causes input/output to be restricted to devices supporting a specified density. If there is no device available that supports the specified density, the COPYAUDIT program waits on a REQUIRES MT condition. If no density is specified, then the I/O subsystem uses its default rules to set the density.

If you copy audit files from disk to tape, SYSTEM/COPYAUDIT gives primary audit files the title <database name>/QCAUDIT# and secondary audit files the title <database name>/QC2AUDIT#, where # is the audit file number.

AUDITENCRYPT

The AUDITENCRYPT option enables automatic tape encryption while an Accessroutines zips a COPYAUDIT QUICKCOPY job. The specification of automatic tape encryption is an explicit request for an audit file to be encrypted using the encryption algorithm defined by the DASDL ENCRYPTTYPE parameter. If the ENCRYPTTYPE parameter is not defined, the TDES algorithm is used as the default.

Note: Audit files that are encrypted to tape must be copied to disk by the COPYAUDIT parameter before they can be processed by Enterprise Database Server software (for example, DMRECOVERY and PRINTAUDIT). Files are automatically decrypted by the COPYAUDIT program in the process.

Refer to the Enterprise Database Server Utilities Operations Guide for examples and additional information about the AUDITENCRYPT option.

QUICKCOPY

The QUICKCOPY option provides a multireel, fixed‑length, block copy of an audit file. QUICKCOPY is supported for all tape devices. A forward comparison is always performed when the QUICKCOPY option is used.

For DMRECOVERY or the Accessroutines to use audit files that have been copied to tape by using the QUICKCOPY option, the user must first restore the files by using the COPYAUDIT COPY or QUICKCOPY option.

APPEND

The APPEND option requests that the audit file be copied to an existing audit file tape. Otherwise, each audit file is copied to a new tape. To limit the number of audit files that can be copied to an audit file tape, use the MAXFILESPERTAPE option.

Note that audit file tapes can be a single-reel or multiple reels.

MAXFILES–PERTAPE

The MAXFILESPERTAPE option always refers to logical audit files, not audit file sections.

The MAXFILESPERTAPE option limits the number of audit files that can be copied to an audit file tape. By default, the MAXFILESPERTAPE option is set to the maximum value, 9999. This means that all audit files are to be appended to the same logical tape, in a continuous stream.

If you specify an integer value greater than 1, you do not need to include the APPEND keyword in the copy option statement.

COMPRESSED and NONCOMPRESSED

The COMPRESSED and NONCOMPRESSED options are only valid with the QUICKCOPY option.

The COMPRESSED option requires that the audit file be copied to a compressed tape.

The NONCOMPRESSED option requires that the audit file be copied to a noncompressed tape.

If you use the QUICKCOPY option and do not designate either the COMPRESSED or the NONCOMPRESSED option, the audit file is copied to the type of tape that is currently loaded.

For example, the audit file is copied to a compressed tape if a compressed tape is loaded. If a compressed tape is not loaded, the audit file is copied to a noncompressed tape.

SECURITYGUARD

The SECURITYGUARD option sets the SECURITYGUARD file attribute to the name and location of the guard file that controls direct access to the database files by programs other than the Accessroutines. Standard system security rules prevail. The following conditions are some of the causes of security errors:

  • If a nonprivileged program that is run under a nonprivileged usercode attempts to directly access the database files and is not in the guard file

  • If the guard file is not present when the database file is accessed by a program that is both nonprivileged and runs under a nonprivileged usercode

DESIGNATED <serial numbers>

The DESIGNATED serial numbers option enables the user to control the serial numbers assigned to tape audit files. Both a starting and ending value must be specified. The starting and ending values can be either unsigned integers or strings containing from one to six characters. If fewer than six characters are used, the serial value is filled out to six characters as follows:

  • If the serial value is in the form of an unsigned integer, then the digits are stored right-justified with leading EBCDIC zeroes.

  • If the serial value is in the form of a string, then the characters are stored left-justified with trailing blanks.

    For example,

    • 5000 is stored as "005000"

    • "A1234" is stored as "A1234 "

    • "54321" is stored as "54321 "

The starting and ending values can contain both letters and digits, or can consist of digits alone, as shown in the following examples:

  • "AUD001" TO "AUD999"

  • "000001" TO "000889"

  • "A23nnn" TO "A46nnn"

  • "A1B200" TO "A1B300"

  • 101 TO 500

Serial values can contain a prefix portion and a numeric portion. Only the numeric portion of the serial value is incremented at reel switch time. The prefix, if any, remains constant.

The procedure which increments the serial value determines the numeric portion by scanning backward (from right to left) until it finds a nonnumeric character or until all six characters have been examined. The digit string to the right of the nonnumeric character located in this manner is considered to be the numeric portion, and the remainder of the word is (if nondigits are present) the prefix portion.

DESIGNATED <serial numbers> (cont.)

Any combination of letters and digits can be used, subject to the following restrictions:

  • If strings are used, then the starting and ending values must be the same length. For example, "AAA001" TO "AAA99" is not valid since the starting value contains six characters while the ending value contains only five characters. For unsigned integers, the starting value can be shorter than the ending value. The string 1 TO 200 is valid, for example.

  • If both letters and digits are used, the number of characters in the starting and ending prefixes must be the same. For example, "A1B001" TO "A1BB99" is not valid since there are three characters in the starting prefix A1B and four characters in the ending prefix A1BB.

  • If letters appear, then the starting and ending prefixes must be identical. The range "A1B001" TO "A1C999" is invalid because the starting prefix A1B is not the same as the ending prefix A1C.

  • The numeric portion of the starting value must be less than the numeric portion of the ending value. For example, "AAA500" TO "AAA020" is not valid since 500 is greater than 20. The numeric portion of the serial range is incremented by 1 each time audit file reel switch occurs. When the ending value is reached, the serial numbers are repeated beginning with the starting value. For example, the range "AUDT01" TO "AUDT49" produces the serial numbers "AUDT01", "AUDT02", . . . "AUDT49", "AUDT01", . . .

When the audit is duplicated, and both the primary and secondary audit files are on tape, then the following rules apply:

  • If a serial value range is specified for both the primary and the secondary audit files, then the two ranges must not overlap. A syntax error will result if overlapping ranges are specified.

  • If a serial value range is specified for only the primary audit, then the serial values apply to both the primary and secondary files. The serial values are allocated as they are required—first for the primary audit tape, and then for the secondary audit tape.

  • A serial range must not be specified for the secondary audit tape without specifying a range for the primary audit tape.

<scratch pool option>

The scratch pool option identifies the name of the scratch pool from which a tape is selected. The scratch pool name is a 17–character identifier.