Preparing the JCL (Scripting)


Performance Test provides a series of samples to aid you in running the utility and writing your own exit programs (see the below figure). Locate these samples in the Performance Test install library (typically INSTALL). Member $EHS3IDX is an electronic index of these samples.

Sample to Run EHS3COPY Utility and Aids for Authoring Exit Programs

Member

Description

EHS3CJA

JCL to assemble exit program written in Assembler

EHS3CJC

JCL to compile exit program written in C

EHS3CJCB

JCL to compile exit program written in COBOL

EHS3COPY

JCL to search and select/copy sessions

EHS3COP

JCL to copy sessions by terminal

EHS3RJA

JCL for using exit program written in Assembler

EHS3RJC

JCL for using exit program written in C

EHS3RJCB

JCL for using exit program written in COBOL

EHS3SCAN

JCL to search strings in a repository file

EHS3SXA

Source code for sample exit program written in Assembler

EHS3SXC

Source code for sample exit program written in C

Warning

Important

This sample is ready for immediate use. It has been compiled and linked. Execute this program with sample member EHS3COPY. Within EHS3COPY, on the SCAN statement, specify the text to use for filtering. All matching activity is copied to the new repository.

EHS3SXCB

Source code for sample exit program written in COBOL

EHS3XDA

Layout of data passed to the exit program from EHS3COPY (Assembler)

EHS3XDC

Layout of data passed to the exit program from EHS3COPY (C)

EHS3XDCB

Layout of data passed to the exit program from EHS3COPY (COBOL)

JCL examples

This section contains two examples of JCL that invokes EHS3COPY. The first is a simple scan and copy job. The second invokes a user-exit to scan the repository.

The following example invokes EHS3COPY to scan the repository and copies the activity from terminal VT15* through VT18* into a new repository. It also copies a user ID from the specified time frame with the specified terminal. The COPY USER(USERA1) example line continues to the next line. The hyphen denotes the continuation. Also notice that there is a space between the SESSION_FROM() and TERMINAL() parameters.

Information
Example

//ST060 EXEC PGM=EHS3COPY,REGION=32M,PARM='POSIX(OFF)/'
//*
//STEPLIB DD DISP=SHR,DSN=COMPWARE.QQF160.SQQFLOAD
//REPOSIN DD DISP=SHR,DSN=CICSG0T.REPOSIT.AS0X01
//REPOSOUT DD DISP=SHR,DSN=CICSG0T.REPOSIT.AS0C04
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//CEEDUMP DD SYSOUT=*
//CONTROL DD SYSOUT=*,DSORG=PS,RECFM=FB,LRECL=80
//SYSIN DD *
CONTROL COPY(YES) EXIT(NO)
COPY TERMINAL(VT15*)
COPY TERMINAL(VT16*)
COPY TERMINAL(VT17*)
COPY TERMINAL(VT18*)
COPY USER(USERA1) -
SESSION_FROM(2011/04/06_14:30:00) TERMINAL(DHPR*)
/*
 

The next example incorporates a user exit that scans the repository for sessions containing the text “green chev”, then copies those sessions to a new repository.

Information
Example

​​
 

//*....... JOB ...PLACE YOUR INSTALLATION'S JOBCARD HERE...
//*
//* BEFORE YOU SUBMIT THE JOB, PERFORM THE FOLLOWINGS:
//* (1) ADD THE PROPER JOB CARD.
//* (2) CHANGE QALOAD= assignment with your Hiperstation LOADLIB.
//* (3) CORRECT repository file names (REPOSIN and REPOSOUT)
//*
//* START of PROC definition
//REPOCOPY PROC QALOAD='COMPUWARE.QQF160.SQQFLOAD',
// REPOIN=,REPOOUT=
//DELETE EXEC PGM=IEFBR14
//DD1 DD DISP=(MOD,DELETE),DSN=&REPOOUT.,
// SPACE=(CYL,(1,1),RLSE),
// DSORG=PS,RECFM=VB,LRECL=32756,BLKSIZE=32760
//*
//SCAN EXEC PGM=EHS3COPY,REGION=0M,PARM='POSIX(OFF)/'
//STEPLIB DD DISP=SHR,DSN=&QALOAD.
//REPOSIN DD DISP=SHR,DSN=&REPOIN.
//*SYSUDUMP DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//CEEDUMP DD SYSOUT=*
//CONTROL DD DSN=&&CONTROL,DISP=(NEW,PASS),
// SPACE=(CYL,(1,1)),
// DSORG=PS,RECFM=FB,LRECL=80
//REPORT DD DSN=&&REPORT,DISP=(NEW,PASS),
// SPACE=(CYL,(1,1)),
// DSORG=PS,RECFM=VB,LRECL=125
//*
//LISTRPT EXEC PGM=IDCAMS,REGION=1024K,
// COND=(4,LT,SCAN)
//INPUT DD DSN=*.SCAN.REPORT,DISP=(OLD,PASS)
//OUTPUT DD SYSOUT=*
//SYSPRINT DD DUMMY
//*
//LISTCNTL EXEC PGM=IDCAMS,REGION=1024K,
// COND=(4,LT,SCAN)
//INPUT DD DSN=*.SCAN.CONTROL,DISP=(OLD,PASS)
//OUTPUT DD SYSOUT=*
//SYSPRINT DD DUMMY
//*
//COPY EXEC PGM=EHS3COPY,REGION=0M,PARM='POSIX(OFF)/',
// COND=(4,LT,SCAN)
//STEPLIB DD DISP=SHR,DSN=&QALOAD.
//REPOSIN DD DISP=SHR,DSN=&REPOIN.
//REPOSOUT DD DISP=(NEW,CATLG,DELETE),
// DSN=&REPOOUT.,
// SPACE=(CYL,(1,1),RLSE),
// DSORG=PS,RECFM=VB,LRECL=32756,BLKSIZE=32760
//*SYSUDUMP DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//CEEDUMP DD SYSOUT=*
//CONTROL DD SYSOUT=*,DSORG=PS,RECFM=FB,LRECL=80
//SYSIN DD DSN=*.SCAN.CONTROL,DISP=(OLD,PASS)
// PEND
//* END of PROC definition
//*
//SAMPLE EXEC REPOCOPY,
// REPOIN='REPOSITI',
// REPOOUT='REPOSITO'
//*
//* THE 1ST EHS3COPY (SCAN) IS SCANNING MESSAGES
//* THE 2ND EHS3COPY (COPY) IS SELECT/COPY
//*
//SCAN.SYSIN DD *
CONTROL COPY(NO) EXIT(EHS3SXC) EXITTYPE(C)
//*
//* SCANINFO file for user exit program EHS3SXC
//* Search strings (max length of 75) are provided
//* in this file prefixed by SCAN=
//* examples:
//* SCAN=USERAB
//* SCAN=green chev
//* SELECT_ALL in lieu of SCAN= will select all
//SCAN.SCANINFO DD *
SCAN=greenchev
//LISTRPT.SYSIN DD *
REPRO INFILE(INPUT) OUTFILE(OUTPUT)
//LISTCNTL.SYSIN DD *
REPRO INFILE(INPUT) OUTFILE(OUTPUT)
//


 

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC AMI DevX Performance Test 17.02