JES2 Product Update an other new Functions

Klaus Goetze – JES2 Product Update and other new Functions
12. März 2015
JES2 Product Update an other new Functions
Klaus Goetze
kgoetze@de.ibm.com
+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