Set up your own GTF cataloged procedure when you want to control
details of GTF operation such as:
- Amount of storage needed for tracing
- Recovery for GTF
- Number and type of trace output data sets.
If you choose to supply your own cataloged procedure, include the
following statements:
- PROC
- Defines your cataloged procedure.
- EXEC
- PGM=AHLGTF
- Calls for the system to run program AHLGTF.
- PARM='parm, parm...'
- Options specified on the PARM parameter specify where GTF writes
trace data and the amount of storage needed for GTF to collect and
save trace data in various dump types. parm can
be any of the following:
MODE={INT|EXT|DEFER}
SADMP={nnnnnnK|nnnnnnM|40K}
SDUMP={nnnnnnK|nnnnnnM|40K}
NOPROMPT
ABDUMP={nnnnnnK|nnnnnnM|0K}
BLOK={nnnnn|nnnnnK|nnnnnM|40K}
SIZE = {nnnnnnK|nnnnnnM|1024K}
TIME=YES
DEBUG={YES|NO}
- MODE={INT|EXT|DEFER}
- Defines where GTF writes the trace data. MODE=INT directs data
to a trace table in virtual storage, and MODE=EXT directs data to
a data set on tape or DASD.
If MODE=INT, each instance of GTF will
direct the trace data to a separate trace table in virtual storage,
and will ignore any DD statements that define GTF output data sets.
Choose this option when it is very important to you to maintain good
system performance while GTF runs. The trace table cannot contain
as much GTF trace data as a data set, but will not impact performance
as much as a data set because there is no I/O overhead.
If MODE=EXT
or MODE=DEFER, each instance of GTF directs the output to a separate
trace data set defined by GTFOUTxx or IEFRDER DD statements. MODE=EXT
is the default value. Choose MODE=EXT or MODE=DEFER when you want
to collect more data than will fit in a trace table. Writing trace
data to a data set does involve I/O overhead, so choosing one of these
options will impact system performance more than MODE=INT.
MODE=DEFER
will place the trace data in the GTF address space until you enter
the STOP GTF command. Every instance of GTF runs in its own address
space. During GTF end processing, each instance of GTF will transfer
the data from its address space to the output data set.
The
amount of data transferred for MODE=EXT or MODE=DEFER is one of the
following:
- The default amount
- The amount specified on the SADMP|SA keyword
When the trace output data set is full, GTF continues
as follows:
- Direct access: GTF resumes recording at the beginning
of the data set, when the primary allocation is full. Thus, GTF writes
over earlier trace data.
- Tape: GTF writes an end-of-file record. The tape is rewound
and unloaded, then a new volume is mounted on the tape unit. If GTF
has only one tape data set and only one unit for the data set, GTF
does not write trace records while the tape is unavailable, thus losing
trace data.
GTF can write to multiple tape units in two ways:
- Multiple GTFOUTxx DD statements can specify tape data sets. When
GTF fills one data set, it changes to the next data set.
- The IEFRDER DD statement can specify two tape units; in this case,
GTF resumes writing the current trace data on the other unit, while
rewinding and unloading the full volume.
- SADMP|SA=nnnnnnK|nnnnM|40K}
- Specifies the amount of storage needed to save GTF trace data
for stand-alone dumps. Specify the amount of storage in terms of
either kilobytes (K) or megabytes (M). The minimum amount is 40K,
and the maximum is 2048M minus 400K, or 2096752K. GTF rounds up the
amount to the block size boundaries for DASD data sets, or 32K boundaries
for tape data sets or internal mode. The default value for this parameter
is 40K (rounded up to the correct boundary).
- SDUMP|SD={nnnnnnK|nnnnM|40K}
- Specifies the amount of storage needed to save GTF trace data
for SVC dumps. Specify the amount of storage in terms of either kilobytes
(K) or megabytes (M). The minimum amount is zero, and the maximum
cannot exceed the maximum amount of storage defined by the SADMP parameter.
GTF rounds up the amount to the block size boundaries for DASD data
sets, or 32K boundaries for tape data sets or internal mode. The default
value for this parameter is 40K (rounded up to the correct boundary).
- NOPROMPT|NP
- If specified, indicates that you will not be prompted to specify
trace options. Message AHL125A and AHL100A will not be issued. Use
this parameter when you have a parmlib member set up with the desired
GTF options and you want to avoid multiple replies in a sysplex environment.
- ABDUMP|AB={nnnnnnK|nnnnM|0K}
- Specifies the amount of GTF trace data to be formatted in an ABEND
or SNAP dump. Specify the amount of trace data in terms of either
kilobytes (K) or megabytes (M). The minimum amount is zero, and the
maximum cannot exceed the maximum amount of storage defined by the
SADMP parameter. GTF rounds up the amount to the block size boundaries
for DASD data sets, or 64K boundaries for tape data sets or internal
mode. The default value for this parameter is 0K, which means that
no GTF data will appear in ABEND or SNAP dumps.
For ABEND or SNAP
dumps. GTF formats only those records that are directly associated
with the failing address space. GTF does not format the channel program
trace data associated with the failing address space.
- BLOK={nnnnn|nnnnnK|nnnnnM|40K}
- Specifies the amount of virtual storage (E)CSA that GTF
will use to collect trace data. Specify this storage amount in 4096-byte
pages (nnnnn), or in bytes (nnnnnK or nnnnnM). The maximum amount
is 99999; the default is 40K. If the amount is less than 40K, GTF
will use the default.
- SIZE={nnnnnK|nnnnnM|1024K}
- Specifies the size of the buffers. Specify this amount in bytes
(nnnnnK or nnnnnM). The range for the size keyword is 1M to 2046M.
The maximum amount is 2046M; the default is 1024K. If the amount
is less than 1024K, GTF will use the default.
- TIME=YES
- Specifies that every GTF trace record have a time stamp, as well
as the block time stamp associated with every block of data. The time
stamp is the eight-byte time of day (TOD) clock value at the local
time in which GTF puts the record into the trace table. GTF does not
accept TIME=NO; all output records will have time stamps. Local
time is calculated using a time zone offset that GTF establishes at
the time that the trace starts. If the system time zone offset is
changed during tracing, e.g. in response to daylight saving time going
into effect, local times formatted by GTF will not correspond with
system times afterward.
When you use IPCS to format and print
the trace records, a time stamp record follows each trace record.
You can use these time stamp records to calculate the elapsed time
between trace entries. The time stamp record is described in Time stamp records.
- DEBUG={YES|NO}
- Specifies whether GTF should attempt recovery after it encounters
an error. If DEBUG=YES, GTF will not attempt any recovery. Instead,
GTF will issue an error message and end after encountering any error,
so that the contents of the trace table immediately prior to the error
remain intact.
If DEBUG=NO, which is the default, GTF does the
following:
- For errors in GTF processing, GTF continues processing after doing
one or more of the following:
- Flagging the trace record or trace record field associated with
the error
- Issuing a message to the console to inform that an error occurred
- Suppressing the error or function in which the error occurred.
- For errors that do not occur in GTF itself, GTF ends abnormally.
If GTF stops processing, that will not cause any other task to also
stop.
- TIME=nnnn
- Specifies unlimited processor time for GTF.
- REGION=nnnnK
- Specifies the maximum size of the storage that GTF requires. Specify
any value from 832K to 2880K. See Determining GTF's storage requirements for
information about determining the value for REGION.
- IEFRDER DD or GTFOUTxx DD
- Defines the trace output data set or data sets. This statement
is required only if you do one of the following:
- Specify MODE=EXT or MODE=DEFER
- Use the default MODE=EXT
IEFRDER DD can be used, but does not have to be used, for one
trace output data set. Additional data sets must be defined on GTFOUTxx
DD statements, where xx is one or two characters that are valid in
DDNAMES. The trace output data set or data sets must be unique and
cannot be shared across active instances of GTF. See Guidelines for defining GTF trace output data sets in a cataloged procedure for guidance on how to define output data
sets for GTF.
- SYSLIB DD
- Optionally include a SYSLIB DD statement to define the IBM-supplied
member, or the installation-supplied member, that contains GTF trace
options. If the member exists, GTF will use the options in that member.
If the member does not exist, GTF will issue an error message and
stop.
If you code a procedure that does not contain a SYSLIB DD
statement, GTF issues message AHL100A to prompt for options after
the START GTF command. In response, you can supply the desired trace
options through the console. See Specifying or changing GTF trace options through system prompting for
examples of specifying options through the console.