Using parmlib members

You can use one or more parmlib members to establish default or recommended tracing options for your application. The installation is responsible for creating these parmlib members and placing them in SYS1.PARMLIB. Using parmlib members has several advantages, especially if your application has many trace options associated with it:
  • You can avoid operator intervention entirely, or minimize it.
  • You can establish tracing options while the application is defining itself to component trace (this could be at a time when operator commands are not yet supported).
  • Where operator intervention is necessary, the operator does not have to type in the options, thus avoiding syntax and keystroke errors.
  • You can define a set of tracing options for your application before the application is started.
You can specify parmlib members in the following ways:
  • On CTRACE DEFINE (can contain information about only a single trace)
  • On the TRACE CT operator command (can contain information about more than one trace).

Specifying parmlib member on CTRACE DEFINE macro: When the application issues CTRACE DEFINE with a parmlib member, the system uses the tracing options specified in that parmlib member. If that parmlib member contains instructions to turn the trace on, then the system passes control to the application's start/stop exit routine without any operator intervention. If you update the parmlib member, this changes the tracing options used when the application subsequently issues CTRACE DEFINE with that same parmlib member.

Specifying parmlib member on the TRACE CT operator command: The operator in your installation can specify a parmlib member on the TRACE CT operator command by using the PARM parameter. The operator can even set up tracing options for your application before the application runs and defines itself to component trace.

When the operator issues the TRACE CT command with a parmlib member, the system uses the tracing options specified in that parmlib member, just as it would if you specified the parmlib member on CTRACE DEFINE. However, if you already specified a parmlib member on CTRACE DEFINE, the parmlib member subsequently specified on TRACE CT overrides the parmlib member on CTRACE DEFINE. This override is useful if a problem arises requiring a set of trace options different from those originally specified.

Here is an example of how the operator might specify a parmlib member for application ABC on the TRACE CT command, after you specified CTXABC01 on CTRACE DEFINE:
TRACE CT,,COMP=ABC,PARM=CTXABC02
The CTXABC02 parmlib member might contain the following to change the options that were specified in parmlib member CTXABC01:
TRACEOPTS
ON
ASID(01)
OPTIONS('new options')

When you are using multiple traces, a parmlib member that you specify on the TRACE CT command can contain information about more than one head level or sublevel trace. See Using multiple traces and z/OS MVS Programming: Authorized Assembler Services Guide for more information about multiple traces.

Using the PRESET option: When you specify a parmlib member on the TRACE CT command, you can use a parmlib member containing the PRESET option. This allows the operator to set up trace options for your application before starting the application and before the application defines itself to component trace. The operator might do this in anticipation of a problem application. The advantage is immediacy. The operator issues the TRACE CT command with the parmlib member containing the PRESET option. Then, when the operator starts the application, as soon as the application issues CTRACE DEFINE, the system immediately uses the options in the parmlib member specified on TRACE CT.

Here is an example of how the operator might specify a parmlib member with the PRESET option for application ABC:
TRACE CT,,COMP=ABC,PARM=CTXABC03
The CTXABC03 parmlib member might contain the following to preset the tracing options for application ABC:
TRACEOPTS
PRESET(DEFINE)
ON
ASID(01)
OPTIONS('PRESET options...')

As soon as the application issues CTRACE DEFINE,NAME=ABC..., the system uses the tracing options in parmlib member CTXABC03. The preset parmlib member overrides the parmlib member that you specify on CTRACE DEFINE.