Preparing PL/I for MVS™ and VM programs and OS PL/I programs
Perform the following steps to compile your PL/I for MVS™ and VM programs and OS PL/I programs:
- Create a library (PDSE is suggested unless PDS is required for your organization) for compiler
listing files. This library is only needed in test environments where debugging is performed.
Specify
LRECL=125 minimum,RECFM=VBA,BLKSIZE= lrecl+4 to 32k
. - Allocate libraries (PDSE is suggested unless PDS is required for your organization) for LANGX files. Allocate one or more LANGX libraries for each environment, such as test and production.
- Create a corresponding LANGX library for each load library. Specify
LRECL=1562 or greater,RECFM=VB,BLKSIZE= lrecl+4 to 32k
. - For all programs, such as batch, CICS®, and IMS™:
- In test environments, specify compiler options
TEST(ALL), NOPT, AGGREGATE, ATTRIBUTES(FULL), ESD, LIST, MAP, NEST, OPTIONS, SOURCE, STMT, XREF(FULL)
.TEST(ALL)
andNOOPT
are required by z/OS® Debugger.TEST
adds debug hooks, which add some runtime overhead. Symbolic data that is required by z/OS® Debugger is stored in the module, which can make it larger.The other options format the compiler listing as required by z/OS® Debugger and by the IPVLANGX utility.
- In production environments, specify compiler options
NOTEST, AGGREGATE, ATTRIBUTES(FULL), ESD, LIST, MAP, NEST, OPTIONS, SOURCE, STMT, XREF(FULL)
.NOTEST
disables z/OS® Debugger, but provides the best performance.The other options format the compiler listing as required for the IPVLANGX utility.
This produces a production-ready module that can be used with Fault Analyzer for z/OS® and Application Performance Analyzer for z/OS® but not z/OS® Debugger.
- In test environments, specify compiler options
- Modify the SYSPRINT DD in the compiler step. This parameter is the compiler listing. Save this
to a permanent file. The compiler listing is the input to the IPVLANGX utility and is the source
information file for z/OS® Debugger. Note: This compiler typically renames CSECTs according to an internal compiler algorithm. Therefore, it is not recommended to store PL/I compiler listings or side files using CSECT names as they might not be found by Application Performance Analyzer for z/OS® or Fault Analyzer for z/OS®. Instead, use the primary entry point name.
- Add a step after the compiler step to run the IPVLANGX utility. This utility reads the compiler listing and saves a LANGX file. This file is the source information file for Fault Analyzer for z/OS® and Application Performance Analyzer for z/OS®. Save it in the LANGX file library and specify a member name that is equal to the primary entry point name of your application program.
- Modify the promotion process to promote LANGX files. When a load module is promoted, for example, from test to production, promote the corresponding LANGX file or files. A promotion can be a recompile, copy, or move. Perform the same steps with the LANGX file that you perform with the module during promotion.
- Optionally, include a z/OS® Debugger Language Environment® exit module into the load module during
the linkage editor step. This approach is one way to enable z/OS® Debugger panel 6 in ISPF, a simple panel-driven method to start the debugger
automatically when a program runs, without JCL changes, based on the program name and user ID. Use
module EQADBCXT for batch programs (including IMS™ batch),
EQADICXT for IMS/TM programs and EQADDCXT for DB2® stored
procedures. Do not include the exit module for CICS® programs.
You can also use module EQAD3CXT for batch programs, IMS/TM, IMS™ BTS programs, and DB2® type MAIN stored procedures
- For CICS® applications only, if the z/OS® Debugger DTCN transaction is used to start z/OS® Debugger, link edit the z/OS® Debugger CICS® startup exit module EQADCCXT into the application load module to enable z/OS® Debugger in CICS®. This link edit is not needed if using the CADP transaction instead of DTCN.