ADSM-L

Re: Saving ADSM started task output on MVS.

1997-03-22 07:53:57
Subject: Re: Saving ADSM started task output on MVS.
From: "Nicholas, Murray, Haltek/AU" <MurrayNi AT HALMAIL001.HALTEK.OZ DOT AU>
Date: Sat, 22 Mar 1997 22:53:57 +1000
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
>
<Prev in Thread] Current Thread [Next in Thread>