Sie sind auf Seite 1von 3

Object-Oriented Interface Design: IBM Common User Access Guidelines

Enterprise PL/I for z/OS Programming Guide


PL/I standard files (SYSPRINT and SYSIN) under z/OS UNIX
SYSIN is read from stdin and SYSPRINT is directed to stdout by default. If you
want either to be associated differently, you must use the TITLE option of the
OPEN statement, or establish a DD_DDNAME environment variable naming a
data set or another device. Environment variables are discussed above in Setting
environment variables under z/OS UNIX on page 215.
Redirecting standard input, output, and error devices under z/OS
UNIX
You can also redirect standard input, standard output, and standard error device
s
to a file. You can use redirection in the following program:
Hello2: proc options(main);
put list( Hello! );
end;
After compiling and linking the program, you can invoke it from the command
line by entering:
hello2 > hello2.out
If you want to combine stdout and stderr in a single file, enter the following
command:
hello2 > hello2.out 2>&1

//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*
//*

- - - ADD A JOB CARD ABOVE THIS LINE - - SAMPLE JCL TO PREPARE AN ENTERPRISE PL/I V3.7 OR LATER
PROGRAM FOR THE IBM ZSERIES PD TOOLS PRODUCTS:
FAULT ANALYZER, DEBUG TOOL, AND APPLICATION PERF. ANALYZER
NOTES:
COMPILER:
1. COMPILER PARMS TEST IS REQUIRED FOR DEBUG TOOL
2. COMPILER PARM NOPT IS RECOMMENDED FOR DEBUG TOOL
3. COMPILER PARM:
TEST(ALL,SYM,NOHOOK,SEPARATE,SEPNAME,AALL) (V3.7)
TEST(ALL,SYM,NOHOOK,SEPARATE,SEPNAME),LISTVIEW(AALL), (V3.8+)
IS USED BECAUSE:
- THE MODULE IS READY FOR DEBUG TOOL
- NOHOOK DOES NOT HAVE RUN-TIME CPU OVERHEAD. HOWEVER, THE
MODULE IS LARGER BECAUSE OF STATEMENT TABLE
- A SYSDEBUG FILE IS CREATED THAT CAN BE USED BY DT,FA,APA
4. COMPILER PARMS AGGREGATE,ATTRIBUTES(FULL),NOBLKOFF,LIST,
MAP,NEST,NONUMBER,OPTIONS,SOURCE,STMT,XREF(FULL) ARE NEEDED
TO PROCESS THE COMPILER LISTING WITH IPVLANGX
BINDER (LINKAGE EDITOR):
5. 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)
//*
YOU CAN ALSO USE MODULE EQAD3CXT FOR BATCH PROGRAMS, ONLINE IMS
//*
PROGRAMS, DB2 TYPE MAIN STORED PROCEDURES.
//*
//* SET PARMS FOR THIS COMPILE:
//* --------------------------// SET MEM=PADSTAT
PROGRAM NAME
// SET PLICOMP='IBMZ.V3R7.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='IPVLANGX'
IPVLANGX UTILITY PROGRAM
// SET LANGXLIB='IPV.SIPVMODA'
LIBRARY FOR IPVLANGX UTILITY
//*
NOTE: USE THE IPVLANGX FACILITY SHIPPED WITH THE COMMON COMPONENT.
//*
//ALLOCOBJ EXEC PGM=IEFBR14 ALLOC OBJ LIB IF NEEDED
//OBJ DD DSN=&SYSUID..ADLAB.OBJ,SPACE=(CYL,(3,1,15)),
// DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=8000,DISP=(MOD,CATLG)
//*
//* ***************************************
//* COMPILE STEP
//* ***************************************
//COMPILE EXEC PGM=IBMZPLI,REGION=0M,
// PARM=('TEST(ALL,SYM,NOHOOK,SEPARATE,SEPNAME,AALL),LIST,MAP,SOURCE,',
// 'XREF(FULL),NOBLKOFF,AGGREGATE,ATTRIBUTES(FULL),NEST,OPTIONS,NOPT,',
// 'STMT,NONUMBER,OFFSET')
//* Note: The above options are for Enterprise PL/I Version 3.7
//*
For Enterprise PL/I Version 3.8+, change the TEST option
//*
to TEST(ALL,SYM,NOHOOK,SEPARATE,SEPNAME), and add the
//*
LISTVIEW(AALL) option
//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 DISP=SHR,DSN=&SYSUID..ADLAB.ENTPLI.LISTING(&MEM)
//SYSDEBUG DD DISP=SHR,DSN=&SYSUID..ADLAB.SYSDEBUG(&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
//IPVLANGX 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, EQADICXT OR EQAD3CXT)
//* 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)

Das könnte Ihnen auch gefallen