The following table shows various compiler options that can be used to prepare Enterprise PL/I Version 3.4 and earlier programs for use with the IBM Problem Determination Tools products (Debug Tool for z/OS, Fault Analyzer for z/OS and Application Performance Analyzer for z/OS). The methods suggested in the following table indicate if the load module produced is suitable for a production environment. Load modules suitable for a production environments have no significant run-time overhead.
Compiler options | Source information file type produced | Is the load module production ready? | Options supported and suggested for Debug Tool for z/OS | Options supported and suggested for Fault Analyzer for z/OS | Options supported and suggested for Application Performance Analyzer for z/OS |
---|---|---|---|---|---|
Preprocess (1st stage) to expand source, In compile (2nd stage): TEST(ALL), NOPT, AGGREGATE, ATTRIBUTES (FULL), NOBLKOFF, LIST, MAP, NEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL)) | Expanded source file used by Debug Tool for z/OS, LANGX file used by Fault Analyzer for z/OS and Application Performance Analyzer for z/OS | No | Suggested for test. (Using Debug Tool in production for this compiler is not recommended.) | ||
AGGREGATE, ATTRIBUTES (FULL), NOBLKOFF, LIST, MAP, NEST, NOTEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL)) | Compiler listing | Yes | N/A | Supported | N/A |
LANGX file | Yes | N/A | Suggested for production and test |
Perform the following steps for compiling your Enterprise PL/I Version 3.4 and earlier programs:
TEST(ALL) and NOPT are required by Debug Tool. Debug hooks are inserted, which add some runtime overhead. Symbolic data required by Debug Tool is also stored in the module, which can make it significantly larger.
The other options format the compiler listing as required for the xxxLANGX utility.
NOTEST disables Debug Tool, but provides the best performance. 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 Debug Tool).
The other options format the compiler listing as required for the xxxLANGX utility.
Below is a JCL example for compiling an Enterprise PL/I for z/OS Version 3.4 or earlier program for use with the IBM Problem Determination Tools products.
//* - - - ADD A JOB CARD ABOVE THIS LINE - - -
//*
//* SAMPLE JCL TO COMPILE WITH ENTERPRISE PLI V3.4 AND PREVIOUS
//* FOR THE IBM ZSERIES PD TOOLS PRODUCTS:
//* FAULT ANALYZER, DEBUG TOOL, AND APPLICATION PERF. ANALYZER
//*
//* NOTES:
//*
//* COMPILER:
//* 1. A 2-STAGE COMPILE IS PERFORMED. STAGE 1 (PREPROCESS) IS
//* DONE TO EXPAND INCLUDES AND MACROS IN THE PROGRAM, SO THAT
//* A SOURCE FILE IS CREATED FOR DEBUG TOOL THAT HAS ALL STMTS.
//* 2. COMPILER PARM TEST AND NOPT ARE REQUIRED FOR DEBUG TOOL
//* 3. COMPILER PARMS AGGREGATE,ATTRIBUTES(FULL),NOBLKOFF,LIST,
//* MAP,NEST,NONUMBER,OPTIONS,SOURCE,STMT,XREF(FULL) ARE NEEDED
//* TO PROCESS THE COMPILER LISTING WITH XXXLANGX
//*
//* BINDER (LINKAGE EDITOR):
//* 4. THE INCLUDE FOR MODULE EQAD?CXT IS OPTIONAL. IT IS AN
//* LE EXIT MODULE THAT CAN BE USED TO START DEBUG TOOL.
//* UNDERSTAND THE METHODS AVAILABLE FOR STARTING DEBUG TOOL,
//* AND CHOOSE WHETHER YOU WANT TO USE THE LE EXITS.
//* IF YOU USE THIS METHOD, LOAD THE CORRECT EXIT MODULE:
//* EQADBCXT: FOR BATCH PROGRAMS
//* EQADICXT: FOR ONLINE IMS PROGRAMS
//* EQADDCXT: FOR DB2 STORED PROCEDURES (OF TYPE MAIN AND SUB)
//* (for SUB this is supported only for invocations through call_sub)
//* (DO NOT INCLUDE AN EXIT FOR CICS PROGRAMS)
//*
//* SET PARMS FOR THIS COMPILE:
//* ---------------------------
// SET MEM=PTEST PROGRAM NAME
// SET PLICOMP='IBMZ.V3R4.SIBMZCMP' PLI COMPILER LOADLIB
// SET DTLIB='EQAW.SEQAMOD' DEBUG TOOL LOADLIB
// SET LEHLQ='CEE' LE HIGH LVL QUALIFIER
// SET UNITDEV=SYSALLDA UNIT FOR TEMP FILES
// SET LANGX='EQALANGX' XXXLANGX UTILITY PROGRAM
// SET LANGXLIB='EQAW.SEQAMOD' LIBRARY FOR XXXLANGX UTILITY
//* NOTE: YOU CAN USE THE XXXLANGX UTILITY SHIPPED WITH DT, FA,
//* OR APA. THEY NAMES ARE DIFFERENT, BUT RESULTS ARE THE SAME
//* USE ANY OF THEM... THEY ALL PRODUCE THE SAME RESULTS.
//* IF YOU HAVE: SET LANGX TO: SET LANGXLIB TO:
//* DEBUG TOOL EQALANGX THE DT SEQAMOD LIBRARY
//* FAULT ANALYZER IDILANGX THE FA SIDIAUTH LIBRARY
//* APA CAZLANGX THE APA SCAZAUTH LIBRARY
//*
//ALLOCOBJ EXEC PGM=IEFBR14 ALLOC OBJ LIB IF NEEDED
//XSOURCE DD DSN=&SYSUID..ADLAB.EXPANDED.SOURCE,SPACE=(CYL,(3,1,15)),
// DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=8000,DISP=(MOD,CATLG)
//OBJ DD DSN=&SYSUID..ADLAB.OBJ,SPACE=(CYL,(3,1,15)),
// DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=8000,DISP=(MOD,CATLG)
//* ***************************************
//* PREPROCESS STEP (COMPILE STAGE 1)
//* ***************************************
//PRECOMP EXEC PGM=IBMZPLI,REGION=0M,
// PARM=('MACRO,MDECK,NOCOMPILE,NOSYNTAX,INSOURCE')
//STEPLIB DD DSN=&PLICOMP,DISP=SHR
// DD DSN=&LEHLQ..SCEERUN,DISP=SHR
//SYSIN DD DISP=SHR,DSN=&SYSUID..ADLAB.SOURCE(&MEM)
//SYSLIB DD DISP=SHR,DSN=&SYSUID..ADLAB.COPYLIB
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD SPACE=(1024,(200,50),,CONTIG,ROUND),DCB=BLKSIZE=1024,
// UNIT=&UNITDEV
//SYSPUNCH DD DISP=SHR,DSN=&SYSUID..ADLAB.EXPANDED.SOURCE(&MEM)
//*
//* ***************************************
//* COMPILE STEP (COMPILE STAGE 2)
//* ***************************************
//COMPILE EXEC PGM=IBMZPLI,REGION=0M,
// PARM=('TEST(ALL),LIST,MAP,SOURCE,XREF(FULL),',
// 'NOBLKOFF,AGGREGATE, ATTRIBUTES(FULL),NEST,OPTIONS,NOPT,',
// 'STMT,NONUMBER,OFFSET')
//STEPLIB DD DSN=&PLICOMP,DISP=SHR
// DD DSN=&LEHLQ..SCEERUN,DISP=SHR
//SYSIN DD DISP=SHR,DSN=&SYSUID..ADLAB.EXPANDED.SOURCE(&MEM)
//SYSLIB DD DISP=SHR,DSN=&SYSUID..ADLAB.COPYLIB
//SYSPRINT DD DISP=SHR,DSN=&SYSUID..ADLAB.ENTPLI.LISTING(&MEM)
//SYSUT1 DD SPACE=(CYL,(5,2),,CONTIG),DCB=BLKSIZE=1024,UNIT=&UNITDEV
//SYSLIN DD DSN=&SYSUID..ADLAB.OBJ(&MEM),DISP=SHR
//*
//PLIPRINT EXEC PGM=IEBGENER,REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&SYSUID..ADLAB.ENTPLI.LISTING(&MEM),DISP=SHR
//SYSUT2 DD SYSOUT=*
//SYSIN DD DUMMY
//*
//* *********************************
//* STEP TO GENERATE LANGX FILE
//* *********************************
//LANGX EXEC PGM=&LANGX,REGION=32M,
// PARM='(PLI ERROR 64K CREF'
//STEPLIB DD DISP=SHR,DSN=&LANGXLIB
// DD DISP=SHR,DSN=&LEHLQ..SCEERUN
//LISTING DD DSN=&SYSUID..ADLAB.ENTPLI.LISTING(&MEM),DISP=SHR
//IDILANGX DD DISP=SHR,DSN=&SYSUID..ADLAB.EQALANGX(&MEM)
//*
//* *********************************
//* LINK-EDIT (BINDER) STEP
//* *********************************
//LINK EXEC PGM=IEWL,PARM=(LET,MAP,LIST),REGION=0M
//SYSLIB DD DSN=&LEHLQ..SCEELKED,DISP=SHR
//DTLIB DD DSN=&DTLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSLMOD DD DISP=SHR,DSN=&SYSUID..ADLAB.LOAD(&MEM)
//SYSUT1 DD UNIT=SYSDA,SPACE=(TRK,(10,10))
//SYSLIN DD DSN=&SYSUID..ADLAB.OBJ(&MEM),DISP=(OLD,PASS)
//* INCLUDING A DEBUG TOOL LE EXIT (EQADBCXT, EQADDCXT, OR EQADICXT)
//* IS OPTIONAL. THE EXIT ENABLES STARTING DEBUG TOOL WITH THE
//* USER EXIT DATA SET UTILITY (ONE OF THE DEBUG TOOL ISPF UTILITIES)
//* // DD *
//* INCLUDE DTLIB(EQADBCXT)
[ Top of Page | Previous Page | Next Page | Contents | Index ]