Klaus Goetze – JES2 Product Update and other new Functions 12. März 2015 JES2 Product Update an other new Functions Klaus Goetze [email protected] +49 (0) 6131 84-5576 1 © 2009 IBM Corporation Product Information 2 © 2009 IBM Corporation JES2 / MVS Compatibility JES2 Rel 10 JES2 Rel 11 JES2 Rel 12 JES2 Rel 13 JES2 V2.1 z/OS Rel 10 z/OS Rel 11 z/OS Rel 12 z/OS Rel 13 z/OS V2.1 IBM recommends the same level of z/OS & JES2 thoughout your Plex. - JES levels must match z/OS level starting in z/OS 2.1, JES2 1.13 and earlier will not be supported running on a z/OS 2.1 3 © 2009 IBM Corporation JES2 / MVS Compatibility - Statement of Direction ■ z/OS 1.13 will be the last z/OS release that supports running a down level JES. ■ As of z/OS 2.1, IBM only supports running the 2.1 JES on the 2.1 MVS ■ JES2 1.13 and earlier will not be supported running on a z/OS 2.1 - This does NOT affect what members can co-exist in a MAS - Just the mixing and matching of JES and MVS levels. ■ New messages during initialization: WTO - JES2 level (HJExxxx) is not supported running on z/OS_level WTOR - Reply "CONTINUE" to initialize JES2 in this unsupported environment, "TERM" to shut down JES2 4 © 2009 IBM Corporation JES2 Checkpoint Mode - Statement of Direction ● z/OS 2.1 is planned to be the last release to support z2 checkpoint mode $ACTIVATE LEVEL=Z2 ● z11 checkpoint mode was introduced in z/OS 1.11 $ACTIVATE LEVEL=Z11 ● Migrate to z11 mode if you have not already done so See z/OS 1.11 presentation for information on impacts of z11 mode 5 © 2009 IBM Corporation Limiting Job Execution/Conversion by z/OS level ■ Converter will set minimum level based on JCL found – Some new function only work when job runs on new releases – New JCL only understood on new z/OS – Returned in IEFCNPRM, format is same as ECVTPSEQ • llvvrrmm – ll is MVS type (0 -OS/390, 1 – z/OS) • 01020100x – value for z/OS 2.1 – INPUT processing can also set value ■ $QGET honors value for CNVT and XEQ selection – Compatibility APAR for z/OS 2.1 has basic support in $QGET 6 ■ $DJ updated to display REQUIRES_ZOS ■ New reason (ZOS_LEVEL) added to $DJ DELAY= ■ Added to extended status SSI80 (z/OS 2.1 only) © 2009 IBM Corporation Batch Modernization in JES2 7 © 2009 IBM Corporation Overview • JCL changes to JOB, OUTPUT, and JCLLIB cards • Input phase JCL/JECL error processing changes • Performing interpretation after conversion • JCL symbol processing changes • Eight character job classes • Job class security checks 8 © 2009 IBM Corporation JCL JOB card changes 9 ■ New SYSTEM= keyword on JOB card –List MVS system names where job can run –Valid names are systems that are/were active in the JESPLEX (MAS) ■ New SYSAFF= keyword on JOB card –List JES2 member names where job can run –Valid names are JES2 members defined in the JESPLEX (MAS) –Replaces function of SYSAFF on /*JOBPARM ■ SYSTEM and SYSAFF on job card are mutually exclusive –Both specified results in JCL error ■ JOBPARM SYSAFF ignored if JOB card SYSTEM or SYSAFF specified –New warning message generated © 2009 IBM Corporation JOB JCL statement SYSAFF= details SYSAFF = {MemberName} {-MemberName} {(MemberName,MemberName,...,MemberName)} {(-MemberName,MemberName,...,MemberName)} {(MemberName,...,IND)} {(-MemberName,...,IND)} {ANY} {(ANY,IND)} - Up to 32 one to eight character system names. - A value of "*" indicates the system where the job was submitted. - A "-" preceding a system name indicates the system is not eligible for processing the job. - A "-" preceding the first system name in a list indicates that none of system listed are eligible for processing the job. 10 © 2009 IBM Corporation JOB JCL statement SYSTEM= details SYSTEM = {SystemName} {(SystemName,SystemName,...,SystemName)} {(-SystemName,SystemName,...,SystemName)} {-SystemName} {ANY} {JGLOBAL} {JLOCAL} - Up to 32 one to eight character system names. - A value of "*" indicates the system where the job was submitted. - A "-" preceding a system name indicates the system is not eligible for processing the job. - A "-" preceding the first system name in a list indicates that none of system listed are eligible for processing the job. 11 © 2009 IBM Corporation OA42441 - The JOB card JCL keyword UJOBCORR ■ New UJOBCORR= keyword on the job card – The user portion of the job correlator. This can be 1 to 32 characters in length. It must start with a alphabetic or national character and then it can contain alphanumeric, national, and underscore ('_'). If the underscore character is used then the entire value must be enclosed in single quotes ('). – Defaults: By default, the user portion of the job correlator is blank. – Overrides: The JES symbol SYS_CORR_USRDATA, if set in the environment where the job is submitted, will override the specification of this keyword. JES2 Installation exits 2 and 52, or 20 and 50 can override the specification of this keyword and the JES symbol SYS_CORR_USRDATA. 12 © 2009 IBM Corporation Overview - Job correlator 13 ■ Job names can be reused and JOB IDS can wrap within a JES complex ■ Problem Statement / Need Addressed – Scheduling subsystems need more granular way to select jobs ■ Solution – JES2 to provide “JOB correlator” as additional data – Contains: ● 8 byte job ID, ● 8 byte JES2 XCFGRPNM name ● 8 byte sequence value (hex) - job key ● 7 bytes of reserved space ● a ':' (colon) separator. ● 32 bytes character data created by the JOB submitter (subsys) ■ Benefit / Value – Jobs and their output can be detected by job scheduler subsystems © 2009 IBM Corporation JCL OUTPUT card changes ■ New MERGE=YES keyword on OUTPUT card –Defines base values for OUTPUT level keywords –Only one MERGE=YES statement per context is used • First at the JOB, PROC, or STEP level –Applies to all SYSOUT in that context –Other OUTPUT statements still apply –Does not create additional instances of the data sets –Similar to JES3 non-specific FORMAT JECL ■ New DDNAME= keyword on OUTPUT card –Points OUTPUT card to DD statements • Specify ddname or stepname.ddname or stepname.procstepname.ddname –Applies to all matching SYSOUT DDs in the context • JOB, PROC, or STEP level –Creates multiple instances of the data sets 14 © 2009 IBM Corporation Sample job (instream data not included) //IBMUSERA JOB (,2D07),MSGLEVEL=(1,1),CLASS=A,SYSAFF=(*) //TEST OUTPUT DEST=R1,MERGE=YES //* //STEP1 EXEC PGM=IEBDG //SYSPRINT DD SYSOUT=* //DATASET1 DD SYSOUT=* //SYSIN DD * //* //STEP2 EXEC PGM=IEBDG //TEST2 OUTPUT DEST=R2,MERGE=YES //SYSPRINT DD SYSOUT=* //DATASET1 DD SYSOUT=* //SYSIN DD * Results: DDNAME CC StepName JESMSGLG 1 JES2 JESJCL 1 JES2 JESYSMSG 1 JES2 SYSPRINT 1 STEP1 DATASET1 1 STEP1 SYSPRINT 1 STEP2 DATASET1 1 STEP2 15 Forms STD STD STD STD STD STD STD Dest R1 R1 R1 R1 R1 R2 R2 © 2009 IBM Corporation Sample job (instream data not included) //IBMUSERA JOB (,2D07),MSGLEVEL=(1,1),CLASS=A,SYSAFF=(*) //TEST1 OUTPUT FORMS=TEST,DDNAME=DATASET1 //* //STEP1 EXEC PGM=IEBDG //SYSPRINT DD SYSOUT=* //DATASET1 DD SYSOUT=* //SYSIN DD * //* //STEP2 EXEC PGM=IEBDG //SYSPRINT DD SYSOUT=* //DATASET1 DD SYSOUT=* //SYSIN DD * Results: DDNAME CC StepName JESMSGLG 1 JES2 JESJCL 1 JES2 JESYSMSG 1 JES2 SYSPRINT 1 STEP1 DATASET1 1 STEP1 SYSPRINT 1 STEP2 DATASET1 1 STEP2 16 Forms STD STD STD STD TEST STD TEST Dest LOCAL LOCAL LOCAL LOCAL LOCAL LOCAL LOCAL © 2009 IBM Corporation JCL JCLLIB card changes ■ New PROCLIB= keyword on JCLLIB card – Selects which JES2 PROCLIB concatenation to use for job • Specify entire DDNAME such as PROC01 • If DDNAME does not exist, PROC00 is used $HASP307 KGOE#14 can not access PROCLIB PROCxx - DD not defined – Same as PROCLIB= on JOBPARM JES2 JECL card • JCL error if both are specified HASP112 PROCLIB in prior /*JOBPARM statement not valid if PROCLIB also on JCLLIB 17 © 2009 IBM Corporation Improved processing of input phase errors ■ Input phase detected errors currently written to JCLIN Causes confusion for input detected errors JCLIN data set becomes only print data set ■ Input errors will now be passed to Converter JECL assigned statement numbers Added to standard message data set with other errors Job will not be failed at input time but queued to converter - Will be forced to convert on the input member Interpreter called to ensure OUTPUT JESDS= will be processed ■ Consistent processing of JCL errors JES2, Converter, and Interpreter error processed the same 18 © 2009 IBM Corporation Current (pre-2.1) output: //KGOEAL JOB (,2D07),MSGLEVEL=(1,1),CLASS=BAD,SYSAFF=(BAD) /*JOBPARM PROC=PROC99 ******* NON-VALID JOBPARM STMT - UNEXPECTED KEYWORD DETECTED - PROC //STEP1 EXEC PGM=IEBGENER //SYSIN DD DUMMYSOUT=X //SYSPRINT DD SYSOUT=* //SYSUT2 DD SYSOUT=* //SYSUT1 DD * $HASP106 JOB DELETED BY JES2 OR CANCELLED BY OPERATOR BEFORE EXECUTION ------ JES2 JOB STATISTICS -----11 CARDS READ 11 SYSOUT PRINT RECORDS 0 SYSOUT PUNCH RECORDS 0 SYSOUT SPOOL KBYTES 0.00 MINUTES EXECUTION TIME 19 © 2009 IBM Corporation Output with 2.1: 05.05.18 JOB19223 IEFC452I KGOEAL - JOB NOT RUN - JCL ERROR 993 ------ JES2 JOB STATISTICS -----10 CARDS READ 23 SYSOUT PRINT RECORDS 0 SYSOUT PUNCH RECORDS 1 SYSOUT SPOOL KBYTES 0.00 MINUTES EXECUTION TIME 1 //KGOEAL JOB (,2D07),MSGLEVEL=(1,1),CLASS=BAD,SYSAFF=(BAD) 2 /*JOBPARM PROC=PROC99 3 //STEP1 EXEC PGM=IEBGENER 4 //SYSIN DD DUMMYSOUT=X 5 //SYSPRINT DD SYSOUT=* 6 //SYSUT2 DD SYSOUT=* 7 //SYSUT1 DD * STMT NO. MESSAGE 1 HASP110 CLASS BAD is not valid 1 HASP110 value of SYSAFF= parameter is not valid 2 HASP107 UNEXPECTED KEYWORD DETECTED - PROC 4 IEFC630I UNIDENTIFIED KEYWORD DUMMYSOUT 20 © 2009 IBM Corporation Controlling where a job converts New option on JOBDEF ( scope MAS ) ■ CNVT_SCHENV=IGNORE|HONOR - controls whether Scheduling Environment parsed at input phase (or assigned) – HONOR says to only convert where SCHENV is available Not available, job waits to convert Works on job that went through input on 2.1 and 2.1 converters Down level members can select even if HONOR is set – $D, $T, and initialization statement • cannot be modified by a hot start, quick start or single-member warm start. 21 © 2009 IBM Corporation Performing interpretation after conversion 22 ■ Conversion processing does the first pass at processing JCL – Deals with PROCs and INCLUDEs – Does basic parsing of data into “text units” – Currently run in subtask in JES2 address space in conversion phase ■ Interpretation processing creates control blocks for initiator to run job – Fully validates JCL (values of parameters) • Certain errors only detected by the interpreter – Currently runs in initiator when a job is selected ■ OUTPUT card processing cannot be done until the interpreter is run – Needs to run against control blocks interpreter creates – OUTPUT cards (including JESDS= and MERGE=YES) do not apply if the job does not run • JCL error, job canceled, etc. © 2009 IBM Corporation Performing interpretation after conversion New options on JOBDEF (scope is a member) ■ 23 INTERPRET=INIT|JES – Selects where/when to run interpreter – INIT (default) runs interpreter in initiator when job is selected • Default, runs as it does today – JES – Run interpreter under JES after the converter is run • All members must be 2.1 and must be in z11 mode • Can set to JES but not honored until conditions met • Job must go through input on 2.1 member • Normally run in JES2CI address space (name jesxCInn) – Subtask in JES2CI address space used to run C/I – $D, $T, and initialization statement • Altering takes effect when converter (PCE) is next used © 2009 IBM Corporation Performing interpretation after conversion New options on JOBDEF (continued...) ■ 24 CISUB_PER_AS=nn – Controls number of subtasks in JES2CI AS – Range is 1 to 25 (base on PCEDEF CNVTNUM max) • Default is 5 per address space • Special value of 0 to “run in JES2 address space” – Interpreter run in regular JES2 converter subtask – Concern over storage limitation (below the line) – NOT documented – intended as aid for exit 6 problems – $D, $T, and initialization statement • Can only update ($T) if INTERPRET=JES © 2009 IBM Corporation Performing interpretation after conversion ■ Implications of setting INTERPRET=JES – Converter and interpreter run outside the JES2 address space • CNVT code calls CBIO Exit 8 instead of Exit 7 • Exit 8 cannot access JES2 private storage – New exit 60 (with APAR OA41881) to perform function of exit 6 • Exact same parameters as exit 6 (New XPL in register 2) • Gets control in USER environment (R11 is HCCT) • Run in JES2CI address space (cannot access JES2 private storage) • New sample exits HASX60A and HASX60B – New Exit 59 – post interpreter exit • invoked after interpreter call and after processing OUTPUT cards • before writing data to $SWABLKS DD • XPL passed in R1 (same as Exit 6 XPL) 25 © 2009 IBM Corporation Using system symbols in batch JCL – Converter does not do System Symbols in batch jobs • Works for started tasks • Problem is substitution done at conversion, not execution – New option on JOBCLASS to allow system symbols substitution • SYSSYM=DISALLOW|ALLOW • ALLOW performs system symbol substitution in batch jobs • Set it via $T JOBCLASS command (MAS scope) – Remembers setting over restarts – Most work is in the converter, JES2 owns the external • Sets new indicator in IEFCNPRM 26 © 2009 IBM Corporation Eight character job classes Job classes in JES2 are used for not only scheduling work but also to associate default attributes with a job. – The existing job class structure in JES2 has two issues : • As customers merge multiple systems into a single MAS (either with server consolidations or company mergers) the number of combinations of defaults cannot be satisfied with just 36 classes (A-Z and 0-9). • Customers moving from JES3 to a JES2 environment have problems mapping 8 character JES3 job classes into meaningful 1 character JES2 job classes. 27 © 2009 IBM Corporation Eight character job classes 28 ● Traditionally, a fixed set of 36 one byte batch job classes ( A-Z, 0-9 ) and two special job classes ( STC and TSU ) were created in the JES2 checkpoint. These classes always existed and could never be deleted. ● To facilitate moving to 8 character job classes, new commands were added to add and delete up to 512 job classes. – Note that the 38 traditional job classes ( A-Z, 0-9, STC, and TSU ) will remain and are now referred to as 'permanent job classes'. These classes can never be redefined or deleted. ● All other existing commands dealing with job class values have been updated to support 8 byte job class values. © 2009 IBM Corporation Eight character job classes To avoid a large number of 2-8 character job class names being associated with a single initiator or a device, you can create job class groups to manage these Associations. ● ● ● ● ● 29 JOB CLASSes and Groups must be uniquely named. A JOB CLASS GROUP is a circular list of JOB CLASSes. - One of those CLASS names is contained within the associated group. A JOB CLASS may belong to 0 to 1 groups. There is no add or delete group commands. ● Group is created when the first JOB CLASS is added to the group. ● Group is deleted when the last JOB CLASS is deleted from the group There is a display command which shows all CLASSes within the group. ● $D GRPNAME= ● Max of 512 groups if one class per group. ● Resides within checkpoint – BERT backed © 2009 IBM Corporation Coexisting Considerations MAS with down level releases supported (with appropriate maintenance) ● ● However cannot start down level member - if a multi character job class is defined - a job is in a job class group - If a job class is ACTIVE=NO - Down levels can start but they ignore ACTIVE setting Cannot $ACTIVATE to z2 level - if A multi character job class is defined - a job is in a job class group ● 30 8 Character JOB CLASSes and CLASS GROUPs reside on checkpoint © 2009 IBM Corporation Job class security checks ■ A new RACF class was added to verify a job's access to a job class. This will apply to the traditional 36 job classes and any new 8 character job classes (it will not apply to the special job classes STC and TSU). This check will use an entity name in the JESJOBS class of the form: – JOBCLASS.nodename.jobclass.jobname • Nodename is the local NJE node name. • Jobclass is the job class to be associated with the job. • Jobname is the job name of the job being submitted. – Note: A RACROUTE AUTH call will be made during input processing using the token built for the job being submitted. This will ensure that the userid associated with the job has access to the jobclass associated with the job.. 31 © 2009 IBM Corporation Job class security checks RDEFINE FACILITY JES.JOBCLASS.OWNER UACC(READ) • Verify that the owner of a batch job that is completing input service has access to the job class. • Verify that the owner of a job has access to the new job class when the job's job class is modified. • Verify that the owner of a job has access to a job class when it is restored using Offloader. RDEFINE FACILITY JES.JOBCLASS.SUBMITTER UACC(READ) • Verify that the submitter of an INTRDR job has access to the job class. • Verify that the operator who is submitting a modify job command that specifies job class has authority to the new job class. 32 © 2009 IBM Corporation SAPI Performance Updates • New search tree structures to improve SAPI processing Improves search for output (JOEs) for SAPI selection Improves SAPI search when new output is created • Controlled by parameters on OUTDEF SAPI_OPT=YES|NO controls selection optimization WS_OPT=YES|NO controls SAPI selection performance • Benefit requires selection on at least QUEUE,ROUTECDE,OUTDISP QUEUE,OUTDISP ROUTECDE,OUTDISP OUTDISP 33 © 2009 IBM Corporation Job and SYSOUT ENFs • JES issues ENFs to notify JOB or SYSOUT events Used by applications to track JOB or SYSOUT progress - ENF 58 – SYSOUT processing tracking - ENF 70 – JOB processing tracking • Events creating ENFs include Object create and delete Selection and deselection Phase or queue changes for jobs Print progress via checkpoints for SYSOUT (upon request) • Number of ENFs has increased in recent releases Job level ENFs High level ENFs for SYSOUT SAPI application can request details for SYSOUT 34 © 2009 IBM Corporation Job and SYSOUT ENFs 35 • Intent of ENFs is to reduce “polling” for status Push or event driven vs regular queries Goal is to reduce overall system CPU needs • Vendors are aware of capability Not sure which have implemented listening to the ENFs • ENFs are sent to all members of SYSPLEX (multi-system) Cannot always predict where JOB/SYSOUT will be processed Allows single application instance to monitor entire SYSPLEX • Multiple JESPLEXes in SYSPLEX can increase total ENFs Especially when jobs/SYSOUT sent to other JESPLEX for Processing • ENFs for original instance and again for destination node May notice increased XCF traffic for ENF processing Group associated with messaging is SYSENF © 2009 IBM Corporation ENF performance enhancements • OA41698 – Open APAR will limit ENFs to MAS vs SYSPLEX Option to control scope $T MASDEF,ENFSCOPE=JESPLEX | SYSPLEX • OA42099/OA41738 – Reduce CPU overhead of ENFs Filters out JES2 listening to certain ENFs Reduces overhead when ENF is received if no other listeners • OA41738 is conditioning APAR and must be applied first • OA45532 CSA memory can be exhausted High ENF SIGNAL arrival rate, Spool Offload, SAPI 36 © 2009 IBM Corporation Miscellaneous Changes • $D INITINFO - display initialization information command Start command, Init decks used, STEPLIB concatenation • JOBCLASS DSENQSHR=AUTO|DISALLOW|ALLOW Supports ENQ downgrade changes • Extended status output can be in 64 bit storage • New SSI to modify jobs Unauthorized SSI to modify jobs and their characteristics Input/Filters similar to Extended Status SSI Requests can be synchronous or asynchronous • New Symbol Services Symbolic Substitution in Instream Data Sets System Symbol Substitution in BATCH Jobs 37 © 2009 IBM Corporation FRAGEN ? 38 © 2009 IBM Corporation A few things about checkpoint Member A Member B Hold = Dormancy = Hold = Dormancy = Member F Member C CKPT Hold = Dormancy = Member D Hold = Dormancy = 39 Events needing the checkpoint - Need a job number - SAPI needs a JOE - JES2 Commands ($COJ, $TJ) - Need Spool Space Hold = Dormancy = Member E Hold = Dormancy = © 2009 IBM Corporation A few things about checkpoint $HASP263 $HASP9207 Member B Member A holding CKPT $HASP263 is governed by MASDEF,LOCKOUT= default 10 seconds X Hold = Dormancy = $HASP263 $HASP263 Member C $HASP263 Member D Hold = Dormancy = 40 X X Member F CKPT Hold = Dormancy = possible additional Monitor alerts $HASP92xx X Hold = Dormancy = X Events needing the checkpoint - Need a job number - SAPI needs a JOE - JES2 Commands ($COJ, $TJ) - Need Spool Space $HASP263 Member E Hold = Dormancy = © 2009 IBM Corporation
© Copyright 2024