Mark,
Your other way of resolving this is to get your MVS sysprog staff to install
you a JES2 EXIT number 2 similar to the following example. I wrote this
more than ten years ago and have carried it with me ever since. It has
worked from MVS/SP V1 through to MVS/ESA V4. The basic intent is that all
started task output goes to the bit bucket but if the task's jobname (i.e.,
its PROCLIB member name) matches anything in the KEEPLIST, it is kept on the
hold queue. I haven't used it for a while but my memory is that the JES2
parameter STCCLASS must be set to a held print output class (not to dummy!)
because the exit changes everything except those in the KEEPLIST to
MSGCLASS=Z.
With the exit installed as above you have two benefits: not only do you get
the opportunity to save the output of selected started tasks (and archive
this with an external writer and ADSM) but by temporarily disabling the exit
through JES2 commands you can get the job log of any started task for
debugging purposes.
The code follows:
Murray Nicholas
Systems Specialist
Haltek Pty Ltd (a member of the HiServ group)
JES2EXIT TITLE 'COMMON JES2 EXIT SKELETON'
00010000
*
000200
00
*RECORD OF CHANGES
00030000
*
000400
00
* INITIAL RELEASE YYMMDD MURRAY NICHOLAS
00050000
*
000600
00
*IDENTIFICATION: CSECT NAME: JES2EXIT
00070000
* LOAD MODULE: SYS1.LINKLIB(JES2EXIT)
00080000
* ENTRY POINTS AS DEFINED BY $ENTRY MACROS COPIED INLINE
00090000
*
001000
00
*REFERENCE: LC23-0067 SYSTEM PROGRAMMING LIBRARY:
00110000
* JES2 USER MODIFICATIONS AND MACROS
00120000
*
001300
00
*AUTHOR: MURRAY NICHOLAS
00140000
*
001500
00
*PURPOSE: PROVIDES THE BASIC OUTER STRUCTURE FOR ALL JES2 EXITS
00160000
* INCLUDING THE $MODULE AND $MODEND MACROS.
00170001
*
001800
01
*SUPPORT DETAILS: NOTE IEZREGS MACRO IS NOT USED; $HASPEQU IS REQUIRED
00190001
* AND CONTAINS THE NECESSARY "RN EQU N" STATEMENTS.
00200001
*
002100
01
* THE SOURCE OF ANY EXIT INCLUDED IN THIS MODULE MUST
00220001
* NOT INCLUDE THE STANDARD INITIALIZATION OR EXIT
00230001
* ROUTINES AS THESE ARE REPLACED BY JES2 SUPPLIED
00240001
* ROUTINES INCLUDED HERE. THE 'END' STATEMENT
00250001
* >>>>>>>>>>>>>> IS ALSO INCLUDED IN THIS SOURCE AND MUST NOT APPEAR
00260001
* IN THE EXIT'S OWN SOURCE.
00270003
*
002800
01
EJECT
00290001
*
003000
01
*OVERVIEW:
00310001
* THIS SKELETON CONTAINS THE BASIC PACKAGING FOR ALL JES2 EXITS.
00320004
* ADDITIONAL EXITS CAN BE INCLUDED BY ADDING A COPY STATEMENT FOR
00330001
* THE APPROPRIATE MEMBER WHICH CONTAINS THE CODE FROM THE $SAVE
00340001
* TO THE $RETURN MACRO AND ALL THE NECESSARY LOGIC. ADDITIONAL
00350001
* MAPPING MACROS SHOULD BE ADDED TO THE $MODULE PARAMETER LIST
00360001
* AND THE "REQUIRED FOR EXIT" TABLE SHOULD BE FILLED IN FOR ALL
00370001
* MACROS IN THE LIST. THE LABEL USED FOR THE $ENTRY MACRO SHOULD
00380001
* BE THE SAME AS THE MEMBER NAME AND ENTRY=YES SHOULD BE CODED.
00390001
*
004000
01
EJECT
00410001
COPY $HASPGBL JES2 GLOBAL PARAMETERS
00420001
*
004300
01
* MAPPING MACROS REQUIRED FOR EXIT NO
00440001
* 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2
00450001
* 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
00460001
JES2EXIT $MODULE $JCT, *
C00470001
$HCT, *
C00480001
$RDRWORK, *
C00490001
$BUFFER,
C00500001
$JQE,
C00510001
$MIT, *
C00520001
$PCE, *
C00530001
$CAT,
C00540001
$HASPEQU, * * * * * * * * * * * * * * * * * * * * * *
*C00550001
NOTICE=NONE, NO COPYRIGHT NOTICE
C00560001
SYSP=(GEN,GEN,DATA,GEN,GEN), PRINT EVERYTHING
C00570001
TITLE='COMMON JES2 EXIT MODULE ',
C00580001
ENVIRON=JES2 >>>> EXIT CALL FROM HASJES20 <<<<
00590001
EJECT
00600001
***********************************************************************
00601003
* *
00610003
* EXIT2 - JOB CARD SCANNER *
00620003
* *
00630003
***********************************************************************
00631003
EJECT
00632003
EXIT2 TITLE 'JES2 EXIT2 - JOB CARD SCAN'
00640002
*
006410
02
*RECORD OF CHANGES:
00642002
* INITIAL RELEASE YYMMDD MURRAY NICHOLAS
00643002
*
00644002
*IDENTIFICATION: CSECT NAME: JES2EXIT
00645002
* ENTRY POINT: EXIT2
00646002
*
006470
02
*AUTHOR: MURRAY NICHOLAS
00648002
*
006490
02
*PURPOSE: SET JCTMCLAS FOR TSO LOGONS AND STARTED TASKS
00649102
*
006492
02
*
006497
02
*REGISTER USAGE:
00649802
* ON CALL FROM JES2 DURING EXIT ON RETURN TO JES2
00649902
* R0 JOB OR CONT INDICATOR N/A
00650002
* R1 @ PARAMETER LIST N/A
00650102
* R2
00650202
* R3 WORK
00650302
* R4 WORK
00650402
* R5 WORK
00650502
* R6 BXLE INCREMENT
00650602
* R7 BXLE LIMIT VALUE
00650702
* R8 CSECT ADDRESSABILITY
00650802
* R9
00650902
* R10 @ JCT
00651002
* R11 @ HCT
00651102
* R12 N/A
00651202
* R13 @ PCE
00651302
* R14 RETURN ADDRESS
00651402
* R15 ENTRY ADDRESS RETURN CODE
00651502
*
006516
02
*ROUTINES CALLED: NONE
00651702
*
006518
02
*PARAMETERS PASSED: SEE REFERENCE FOR DETAILS (R1-> @ @ JOB CARD).
00651902
*
006520
02
*RETURN CODES: SEE REFERENCE
00652102
*
006522
02
EJECT
00652302
*
006524
02
*OVERVIEW:
00652502
* THIS EXIT IS TAKEN AFTER INITIALIZING THE JCT WITH AVAILABLE
00652602
* DEFAULTS BUT BEFORE SCANNING THE JOB CARD. THE PURPOSE HERE IS TO
00652702
* RESET THE JCTMCLAS TO Z FROM X FOR ALL TSO SESSIONS AND FOR
00652802
* STARTED TASKS NOT LISTED IN KEEPLIST HERE.
00652902
* NOTE: IF IT IS EVER NECESSARY TO OBTAIN JCL FROM TSO SESSIONS
00653002
* OR STCS NOT INCLUDED IN THE KEEPLIST CODED HERE, THIS EXIT
00653102
* MAY BE TEMPORARILY DISABLED (SEE JES2 OPERATOR COMMANDS).
00653202
*
006533
02
EJECT
00653402
EXIT2 $ENTRY BASE=R8, DEFAULT
C00653502
ENTRY=YES, DEFAULT - GENERATE ENTRY STATEMENT
C00653602
CSECT=NO,
C00653702
REGUSE=R15 DEFAULT
00653802
EJECT
00653902
SAVE $SAVE SAVE REGISTER ENVIRONMENT
00654002
EJECT
00654102
START LR R8,R15 BASE REGISTER FOR EXIT CODE
00654202
LM R2,R4,0(R1) LOAD PARAMETERS
00654302
LA R15,0 RC=0 - CONT. STAND. PROCESSING
00654402
SPACE 2
00654502
CLI JCTJOBID,C'T' IS THIS A TSO LOGON?
00654602
BE TSLOGON YES - BRANCH
00654702
CLI JCTJOBID,C'S' IS THIS A STARTED TASK?
00654802
BE STCSESS YES - BRANCH
00654902
EJECT
00655002
BATCH CLI JCTMCLAS,C'Z' IS MSGCLASS = 'Z' IN JCT?
00655102
BNE RETURN NO - LET IT GO
00655202
*
006553
02
* MSGCLASS IS 'Z' IN JCT; CHECK FOR 'MSGCLASS=' ON JOB CARD
00655402
*
006555
02
L R2,0(R1) POINT R2 TO JOB CARD
00655602
LA R6,1 BXLE INCREMENT
00655702
LA R7,61(R2) 'MSGCLASS=' MUST START BEFORE COL. 61
00655802
LA R2,8(R2) POINT PAST '//X JOB ' (MINIMUM)
00655902
MSGCLOOP CLC 0(9,R2),=C'MSGCLASS=' MSGCLASS SUPPLIED?
00656002
BE RETURN YES - LEAVE IT ALONE
00656102
BXLE R2,R6,MSGCLOOP NOT YET - KEEP LOOKING
00656202
MVI JCTMCLAS,C'A' OVERRIDE TSINRDR SUPPLIED DEFAULT
00656302
B RETURN
00656402
SPACE 5
00656502
TSLOGON MVI JCTMCLAS,C'Z' TSO LOGON JCL TO BIT BUCKET
00656602
B RETURN
00656702
SPACE 5
00656802
STCSESS LA R5,KEEPLIST LIST OF STC JCL TO KEEP
00656902
LA R6,8 JOBNAMES ARE 8 BYTES LONG
00657002
LA R7,KEEPLEND END OF THE KEEPLIST
00657102
KEEPLOOP CLC JCTJNAME,0(R5) IS OUR STC TO BE KEPT?
00657202
BE RETURN YES - DO NOTHING
00657302
BXLE R5,R6,KEEPLOOP NO - KEEP CHECKING TO END OF LIST
00657402
MVI JCTMCLAS,C'Z' NOT IN LIST => PURGE IT
00657502
EJECT
00657602
RETURN $RESTORE (R2,R9) RESTORE REGISTERS CHANGED HERE
00657702
$RETURN RC=(R15),TRACE=YES RETURN TO JES2 - RETURN CODE IN R15
00657802
EJECT
00657902
*
006580
02
* CONSTANT DATA
00658102
*
006582
02
SPACE 2
00658302
LTORG
00658402
SPACE 2
00658502
*
006586
02
* LIST OF STARTED TASK JOBNAMES WHOSE JCL IS TO BE KEPT.
00658702
*
006588
02
KEEPLIST DC CL8'PCICS '
00658902
DC CL8'MCICS '
00659002
DC CL8'ZCICS '
00659102
DC CL8'PNPDA '
00659202
DC CL8'PRTSTC ' DUMMY TO CONTAIN STC UNDER TEST
00659302
KEEPLEND EQU *
00659402
EJECT
00659502
JES2EXIT CSECT
00659601
$MODEND
00660001
EJECT
00670001
END
00680001
>----------
>From: Mark Brown (CC Operations Supervisor)[SMTP:CCMB AT MUSICA.MCGILL DOT CA]
>Sent: Friday, March 21, 1997 10:58 AM
>To: ADSM-L AT VM.MARIST DOT EDU
>Subject: Saving ADSM started task output on MVS.
>
>Hello,
>
>I am trying to save the output from the started task ADSM on an MVS 4.2
>system. I have tried a few things but the output never shows up in a
>dataset I want it to go into. Here is the started task jcl. By default
>all started task output on our system is set to be PURGED on normal
>completion of a job but I would think that what I am trying to do
>below should work.
>
>Thanks for any help on this.
>
>//ADSM JOB (xxxxxxx,xxxx,9999,99,,72,,1,xxxx),'xxxxx',
>// MSGLEVEL=(1,1),MSGCLASS=Q
>//SERVER EXEC PGM=DSMSERV,PARM='',DYNAMNBR=300,TIME=1440,
>// REGION=40M
>//STEPLIB DD DSN=xxxx.xxx.xxxxxx.SEDCLINK,DISP=SHR
>//OPT DD DSN=xxxx.ADSM.ANRSERV.OPTIONS,DISP=MOD
>//DSMAMENG DD DSN=xxxx.ADSM.V2R1M0.SANRMSG(ANRMENU),DISP=SHR
>//HLPAMENG DD DSN=xxxx.ADSM.V2R1M0.SANRHLP(ANRHENU),DISP=SHR
>//DSK DD DSN=xxxx.ADSM.DISKLOG,DISP=SHR
>//SYSPRINT DD DSN=xxxx.ADSM.SYSPRINT.LOG(+1),
>// DISP=(MOD,CATLG),UNIT=SYSALLDA,
>// SPACE=(CYL,(10,7),RLSE),
>//* DCB=(LRECL=133,RECFM=VBA,BLKSIZE=6160)
>// DCB=(LRECL=133,BLKSIZE=23408,RECFM=FBA)
>//SYSTERM DD DSN=xxxx.ADSM.SYSTERM.LOG(+1),
>// DISP=(MOD,CATLG),UNIT=SYSALLDA,
>// SPACE=(CYL,(10,7),RLSE),
>//* DCB=(LRECL=133,RECFM=VBA,BLKSIZE=6160)
>// DCB=(LRECL=133,BLKSIZE=23408,RECFM=FBA)
>
>Thank You,
> Mark Brown, Operations Supervisor
> McGill University, Computing Centre
> Phone (514) 398-2321
> E-Mail --> ccmb AT musica.mcgill DOT ca
>
|