This code to create a TYPETASK from JCTJOBID and SUBSYS in SMF records includes
a bunch of old values that you still might see.
Barry
/* COPYRIGHT (C) 2002,2021 MERRILL CONSULTANTS, DALLAS, TEXAS, USA */
/* LAST UPDATED: JAN 5, 2021. CHANGE 39.002. */
/* THIS ROUTINE EXPECTS JCTJOBID AND JOB AS 8-BYTE CHARACTERS, */
/* AND SUBSYS AS A 4-BYTE CHARACTER AS INPUT. */
/* JCTJOBID OF ONE LETTER AND 7 DIGITS EXIST, BUT THE MAXIMUM */
/* JESNR IS 999999 BECAUSE THE 1ST WHEN SEVEN IS ALWAYS ZERO. */
/* IT CREATES THE 4-BYTE CHARACTER TYPETASK AND NUMERIC JESNR */
/* VARIABLES TYPETASK AND JESNR NEED TO BE LABELED IN INVOKER. */
/* IT IS %INCLUDE-D AFTER JCTJOBID AND SUBSYS EXIST. */
TYPETASK=' ';
JESNR=.;
IF SUBSYS=' ' THEN SUBSYS=' '; /*EARLY ASIDS,TMNT */
IF JCTJOBID=JOB OR (JCTJOBID LE ' ' AND SUBSYS='STC')
OR (JCTJOBID EQ '0000000000000000'X AND SUBSYS='SMS')
OR (JCTJOBID EQ 'MSTR' AND SUBSYS='SMS')
OR (JCTJOBID EQ 'INIT' AND SUBSYS='SMS') THEN DO;
JESNR=.;
TYPETASK='STC';
END;
ELSE DO;
IF INPUT(SUBSTR(JCTJOBID,2,7),?? 7.) GT . THEN DO;
JESNR=INPUT(SUBSTR(JCTJOBID,2,7),?? 7.);
TYPETASK=SUBSTR(JCTJOBID,1,1);
END;
ELSE IF INPUT(SUBSTR(JCTJOBID,3,6),?? 6.) GT . THEN DO;
JESNR=INPUT(SUBSTR(JCTJOBID,3,6),?? 6.);
TYPETASK=SUBSTR(JCTJOBID,1,2);
/* THE PRINTWAY SMF 6 RECORDS HAVE PSNNNNNN */
END;
ELSE IF INPUT(SUBSTR(JCTJOBID,4,5),?? 5.) GT . THEN DO;
JESNR=INPUT(SUBSTR(JCTJOBID,4,5),?? 5.);
TYPETASK=SUBSTR(JCTJOBID,1,3);
END;
ELSE IF INPUT(SUBSTR(JCTJOBID,5,4),?? 4.) GT . THEN DO;
JESNR=INPUT(SUBSTR(JCTJOBID,5,4),?? 4.);
TYPETASK=SUBSTR(JCTJOBID,1,4);
END;
IF SUBSYS='TCP ' OR TYPETASK='PS ' THEN TYPETASK='TCP ';
ELSE IF SUBSYS='TCPE' THEN TYPETASK='TCPE';
ELSE IF SUBSYS='PSF ' THEN TYPETASK='PSF ';
ELSE IF SUBSYS='VPS ' THEN TYPETASK='VPS ';
ELSE IF TYPETASK=:'J' THEN DO;
IF SUBSYS='TSO ' THEN TYPETASK='TSU ';
ELSE IF SUBSYS='JES2' THEN TYPETASK='JOB ';
ELSE IF SUBSYS='JES3' THEN TYPETASK='JOB ';
ELSE IF SUBSYS='STC ' THEN TYPETASK='STC ';
ELSE IF SUBSYS='OMVS' THEN TYPETASK='OMVS';
ELSE TYPETASK='JOB ';
END;
ELSE IF TYPETASK=:'O' OR SUBSYS='OMVS' THEN TYPETASK='OMVS';
ELSE IF TYPETASK=:'G' THEN TYPETASK='JOBG';
ELSE IF TYPETASK=:'S' THEN TYPETASK='STC ';
ELSE IF TYPETASK=:'A' THEN DO;
IF SUBSYS GT ' ' THEN TYPETASK=SUBSYS;
ELSE TYPETASK='APPC';
END;
ELSE IF TYPETASK=:'T' THEN TYPETASK='TSU ';
ELSE IF TYPETASK=:'I' AND SUBSYS='STC' THEN TYPETASK='STC ';
ELSE DO;
IF SUBSYS='STC ' THEN TYPETASK='STC ';
ELSE IF SUBSYS='TSO ' THEN TYPETASK='TSU ';
ELSE IF SUBSYS='JES2' THEN TYPETASK='JOB ';
ELSE IF SUBSYS='JES3' THEN TYPETASK='JOB ';
ELSE IF SUBSYS='STC ' THEN TYPETASK='STC ';
ELSE IF SUBSYS='SAR ' THEN TYPETASK='SAR ';
ELSE IF SUBSYS='OMVS' THEN TYPETASK='OMVS';
ELSE DO;
IF PRODUCT=' ' THEN PRODUCT=' ';;
IF SUBTYPE=. THEN SUBTYPE=.;
IF PRODUCT='PERFMON ' AND SUBTYPE=3 THEN DO;
TYPETASK='STC';
SUBSYS='PERFMON';
END;
END;
END;
IF TYPETASK=' ' THEN DO;
BADVJESN+1;
IF BADVJESN LE 2 THEN
PUT '*** WARNING - TYPETASK NOT DECODED: ' / +10
_N_= SYSTEM= ID= SUBTYPE= JOB=
JCTJOBID= SUBSYS= TYPETASK= JESNR= ;
END;
&MACJESN;
END;
/* END OF MEMBER VGETJESN - GET JESNR AND TYPETASK FROM JCTJOBID */
-----Original Message-----
From: IBM Mainframe Discussion List <[email protected]> On Behalf Of
Peter Relson
Sent: Tuesday, August 13, 2024 7:02 AM
To: [email protected]
Subject: Re: Couple of questions about job id
<snip>
For a given ASID, look at OUCB +B0. JES2, STC or TSO should appear.
</snip>
That is field OUCBSUBN which is not a programming interface. Its commentary
leads me to think that there are additional possible values.
Peter Relson
z/OS Core Technology Design
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
[email protected] with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN