JES procs and initialization decks
This chapter describes the differences between the JES3 and JES2 initialization statements. As you would expect, many of the concepts are similar. However, the way that they are defined to the respective JES is very likely to be different. Also, there are some functions or resources that exist in JES3 that do not exist in JES2. Studying your JES3 initialization statements and mapping them to their JES2 equivalent (where possible) provides you with a valuable insight to how many changes you will need to make if you want to migrate from JES3 to JES2.
While they are a lot simpler than the initialization statements, the started procedures for JES2 and JES3 are also described.
7.1 Introduction
A JES3 JESplex consists of a Global system and zero or more Local systems. The Global system is the first system to perform a cold start or warm start following a JESplex-wide IPL. During a cold start or warm start, the Global system reads the initialization deck. When initialization of the Global is complete, any other systems in the JESplex might start JES3 as locals. JES3 on a Local communicates with the Global through XCF. A Local system never accesses the JES3 initialization deck. It obtains the information that it needs about the configuration by reading the checkpoint data set. It uses the information in the checkpoint to initiate communication with the Global system.
The JES3 Global function can be moved to a Local during either a planned or unplanned outage by performing a Dynamic System Interchange (DSI). The initialization deck is not read during a DSI. Instead, JES3 uses its checkpoint data set to bring the JESplex back to normal function.
A JES2 JESplex consists of one or more systems. If there are multiple systems, they have a peer-to-peer relationship. All JES2 systems read the initialization deck during all starts. The amount of initialization deck processing that occurs during a JES2 start depends on the start type. See Table 7-1 for more information.
JES2 does not have an equivalent function to DSI because each system in the JESplex can perform all JES2-related functions, so there is no concept of a master system.
7.2 Types of start
Both JES2 and JES3 have several varieties of startup. While a cold start is basically the same for both, the various warm start and hot starts have differences in processing of the initialization deck. This information was provided briefly in 2.2.3, “JES startup processing” on page 36, but we provide it here in Table 7-1 in the context of discussing the initialization statement processing.
Table 7-1 JES start types
Type of start
JES31
JES22
Hot start
Performed:
After orderly shutdown
After a JES3 failure
After an IPL
The initialization deck is not read during a normal hot start.
JES2 is being restarted after a $PJES2,ABEND or if JES2 abended. Requires that the JES2 subsystem being started was already active on that system.
If the system was IPLed, a warm start will be performed.
Hot start with analysis
Same as a hot start except that JES3 performs further job validation, allowing the operator to delete invalid jobs.
No JES2 equivalent.
Hot start with refresh
Reads initialization deck, but not all statements are processed3.
A hot start with refresh lets you change many JES3 parameters without the disruption of a warm start.
Single member warm start.
Hot start with refresh and analysis
Combines the hot start with analysis and refresh.
No JES2 equivalent.
Warm start
Reads initialization deck
All statements are processed4
A JES3 warm start requires that all systems in the JESplex are IPLed.
All-member warm start
JESplex restart of JES2 required.
Warm start with analysis
Reads initialization deck
JESplex IPL required
Removes and logs jobs with invalid control information.
No JES2 equivalent.
Warm start to replace a spool data set
Reads initialization deck
Allows replacement of a spool data set
JESplex IPL required5.
No JES2 equivalent
JES2 supports dynamic addition and removal of Spool data sets.
Warm start with analysis to replace a spool data set
Reads initialization deck
Allows replacement of a spool data set.
JESplex IPL required
Removes and logs jobs with invalid control information.
No JES2 equivalent.
Cold start
All job data is lost
Reads initialization deck
All statements are processed
JESplex IPL required.
All job data is lost
JESplex IPL required.
Local start
Performed only on JES3 locals.
Quick start.

1 See z/OS JES3 Initialization and Tuning Reference, SA22-7550 to determine which type of start is needed for each parameter that is changed.
2 See z/OS JES2 Initialization and Tuning Reference, SA22-7533 to determine which type of start is needed for each parameter that is changed.
3 See z/OS JES3 Initialization and Tuning Guide, SA22-7549 Table 3 to determine which statements can be changed during a hot start with refresh.
4 The following parameters cannot change during any type of warm start:
BUFSIZE on the BUFFER statement
SE on the OPTIONS statement
STT or STTL on the TRACK statement for existing spool data sets
The sequence of the MAINPROC statements
5 z/OS V1R13 added the ability to add a JES3 spool data set dynamically using the *MODIFY CONFIG,ADD= command. V2R1 added this for JES2.
7.3 Initialization statements
Table 7-2 lists all current JES3 initialization statements and their JES2 equivalents, if they exist. Not every JES3 statement has a JES2 equivalent, and some JES3 parameters might require updates to several JES2 statements.
 
Note: A sample JES2 HASPARM template is supplied in SYS1.SHASSAMP member HSAIPARM.
Table 7-2 JES3 to JES2 Initialization statement mapping
JES3 statement
JES2 statement
ACCOUNT
No JES2 equivalent; optional for JES3
BADTRACK
BADTRACK
BUFFER
BUFDEF; SPOOLDEF
CIPARM
JOBCLASS
CLASS
JOBCLASS
COMMDEFN
LOGON(n)
COMMENT (*)
/* followed by */
COMPACT
COMPACT
CONSOLE
No JES2 equivalent1
CONSTD
CONDEF
DEADLINE
No JES2 equivalent2
DESTDEF
No JES2 equivalent
DEVICE
MEMBER statements for processors; LINE, PRT, PUN,RDR, OFFLOAD, RMT statements for devices
DYNALDSN
No JES2 equivalent
DYNALLOC
PROCLIB statements for proclibs only
ENDINISH
No JES2 equivalent
ENDJSAM
No JES2 equivalent
FORMAT
SPOOLDEF
FSSDEF
FSS
GROUP
INIT
HWSNAME
No JES2 equivalent3
INCLUDE
INCLUDE
INTDEBUG
DEBUG
MAINPROC
MEMBER
MSGROUTE
No JES2 equivalent
NETSERV
NETSERV
NJECONS
No JES2 equivalent
NJERMT
NODE
OPTIONS
OUTDEF
OUTSERV
OUTDEF, PRINTDEF
RESCTLBK
No JES2 equivalent
RESDSN
No JES2 equivalent
RJPLINE
LINE
RJPTERM
RMT
RJPWS
RMT
SELECT
INIT; INITDEF
SETACC
No JES2 equivalent
SETNAME
No JES2 equivalent
SETPARAM
No JES2 equivalent
SETRES
SOCKET
SOCKTER
SOCKET
SPART
FENCE parameter for SPOOLDEF
STANDARDS
JOBCLASS, ESTBYTE, ESTIME, ESTLNCNT, ESTPAGE, ESTPUN
SYSID
No JES2 equivalent4
SYSOUT
OUTCLASS
TRACK
SPOOLDEF

1 JES3 supports consoles for NJE and RJP only
2 JES2 does not support deadline scheduling
3 JES3 uses HWSNAME, RESDSN, SETACC, SETNAMES, and SETPARAM only when Main device Scheduling (MDS) is in use
4 JES3 uses SYSID only to communicate with BDT when SNA/NJE is in use
We suggest that you sit down with your JES3 initialization deck and a copy of z/OS JES3 Initialization and Tuning Reference, SA22-7550 and z/OS JES2 Initialization and Tuning Reference, SA22-7533 and identify how you will replace each JES3 statement when you migrate to JES2. It is not necessary to go to the level of detail of identifying spool data set names at this point (for example). However, this is a good time to identify any JES3 functions that you might be using that do not have a JES2 equivalent. An obvious example would be the HWSNAME statement that you use to control High Water Mark processing.
7.3.1 Dynamic changes
There are six ways to change JES2 initialization parms. From the easiest to the most disruptive, they are:
1. Operator command
2. Hot start
3. Quick start
4. Single-member warm start
5. All-member warm start
6. Cold start
Tables 9 - 83 in z/OS JES2 Initialization and Tuning Reference, SA22-7533 list the minimum action needed to modify each parameter in the initialization deck. The values of certain parameters can be increased with an operator command but require a cold start to decrease. If a parameter is increased dynamically using a JES2 command, the system programmer must update the initialization deck to match the new value. Refer to Chapter 3 in z/OS JES2 Initialization and Tuning Reference, SA22-7533 for the actions needed to decrease the value of a parameter.
Table 3 (“Initialization Statement Summary A through L”) and Table 4 (Initialization Statement Summary M through Z) in z/OS JES3 Initialization and Tuning Reference, SA22-7550 provide a list of all the JES3 initialization deck statements and the type of JES3 start that is required to change the statement.
7.3.2 Verifying the JES initialization deck
JES3 has an initialization deck checker program IATUTIS that allows the system programmer to verify that the deck has no errors before a scheduled restart. Installations that still have disk or tape DEVICE statements might use option 2.4 in the HCD ISPF panels to create members that will then be pointed to by the STG1CODE DD statement in the checker job. The initialization deck checker will then verify that the DEVICE statements agree with the devices in the HCD. Example 7-1 shows sample JCL for initialization deck checking.
Example 7-1 Sample JCL for IATUTIS initialization deck checker
//INITCHK JOB 'ACCTINFO','NAME',MSGLEVEL=(1,1),
// MSGCLASS=R,...
//IATUTIS EXEC PGM=IATUTIS,PARM='P=1F1R'
//STEPLIB DD DSN=SYS1.SIATLIB,DISP=SHR
//JESABEND DD DUMMY
//JES3IN DD DSN=INIT.PARMLIB(JES3IN00),DISP=SHR
//JES3OUT DD SYSOUT=*
//STG1CODE DD DSN=INSTALL.JES3,DISP=SHR
//IATPLBST DD DSN=SYS1.PROCLIB,DISP=SHR
//
JES2 does not provide an initialization deck checker. However, you can set up a secondary JES2 (see z/OS JES2 Initialization and Tuning Guide, SA22-7532) and use that to validate the JES2 initialization statements if wanted. Errors in the initialization deck cause a $HASP469 message to be issued. The operator can reply with the correct parm, bypass the error, or terminate JES2.
7.4 JES procedures
The JES3 proc points to a single member of a PDS, which can be overridden by replying M=xx to the IAT3012 message. INCLUDE statements can be used in the initialization deck to separate groups of statements into separate PDS members if wanted.
The JES2 proc can also point to a single PDS member, or several data sets or members can be concatenated if you want to break up your JES2 parms into different members. For example, you might have one member that is common across the entire Multi-Access SPOOL (MAS), and a set of members that contain information that is specific to each system. Configurations with many NJE nodes often have a member set aside for just the NODE and CONNECT statements.
It is a common practice to code variables in the JES2 proc to allow overrides if there is a problem with the initialization deck or a PROCLIB because all the PROCLIBs for JES2 were traditionally defined in the JES2 PROC. JES3, alternatively, tended to have simpler procs because its PROCLIB concatenations were defined using DYNALLOC statements in the JES3 initialization deck. Refer to 1.2.2, “JES2 PROC JCL” on page 9 for a description of the current options for defining its PROCLIB and other data sets in the JES2 proc.
7.4.1 The JES3 procedure
Example 7-2 shows a JES3 procedure with all statements hardcoded.
Example 7-2 Typical JES3 procedure
//IEFPROC EXEC PGM=IATINTK,TIME=1440,PERFORM=255
//STEPLIB DD DISP=SHR,DSN=SYS1.SIATLIB
//CHKPNT DD DISP=SHR,DSN=SYS1.JES3.CHECKPT
//CHKPNT2 DD DISP=SHR,DSN=SYS1.JES3.CHECKPT2
//JES3IN DD DISP=SHR,DSN=SYS1.JES3.PARMLIB(JES3IN00)
The JES3IN DD statement on the JES3 procedure points to a single member of a PDS. The operator can select a different member by replying M=xx to the IAT3012 message. JES3 supports INCLUDE statements so the system programmer can break up the initialization deck into multiple members. This can be used, for example, to isolate statements that change frequently, such as DEVICE statements for printers or NJERMT statements, from the more critical parts of the deck.
JES3 supports the use of system symbols in its initialization statement, as does JES2. However, in JES3, the only system that reads the initialization statements is the Global, compared to JES2 where every system reads the initialization members. As a result, the use of system symbols in the initialization deck is probably less likely in a JES3 environment than in a JES2 one.
Other DD statements that can be included in the JES3 procedure are JES3JCT, JES3OUT, JES3SNAP, JESABEND, IATPLBxx, and JES3DRDS. However, these are typically defined in DYNALLOC statements within the initialization deck rather than in the JES3 proc. Using DYNALLOC allows the system to bypass missing data sets. If a data set referenced in the JES3 proc cannot be opened JES3 will fail with a JCL error.
Example 7-3 shows a series of DYNALLOC statements for PROCLIBs in the JES3 initialization deck.
Example 7-3 Sample JES3 DYNALLOC statements to define PROCLIBs
* DYNALLOCS FOR PROCLIBS
* PROCLIBS ARE ACCESSED THROUGH THE CATALOG UNLESS UNIT AND VOLSER ARE CODED
* PROCLIB ST FOR STANDARD JOBS
DYNALLOC,DDN=IATPLBST,DSN=SYS1.SY1.PROCLIB
DYNALLOC,DDN=IATPLBST,DSN=SYS1.PROCLIB
DYNALLOC,DDN=IATPLBST,DSN=SYS1.IBM.PROCLIB
* PROCLIB 01 FOR TSO LOGONS
DYNALLOC,DDN=IATPLB01,DSN=SYS1.LOGON.PROCLIB
DYNALLOC,DDN=IATPLB01,DSN=SYS1.PROCLIB
DYNALLOC,DDN=IATPLB01,DSN=SYS1.IBM.PROCLIB
* PROCLIB 02 FOR STARTED TASKS
DYNALLOC,DDN=IATPLB02,DSN=SYS1.STARTED.PROCLIB
* PROCLIB FI FOR FINANCIAL JOBS
DYNALLOC,DDN=IATPLBFI,DSN=USER.FINANCE.PROCLIB,UNIT=3390,VOLSER=FIN001
The PROCLIB concatenations can be specified in the STANDARDS statement. INTPROC=ST specifies the standard PROCLIB concatenation for jobs entered using the internal reader, STCPROC=02 specifies the concatenation for started task jobs, and TSOPROC=01 specifies the concatenation for TSO logons. Using the definitions shown in Example 7-3 on page 105, jobs submitted by the finance users can use their dedicated PROCLIB by specifying PROC=FI on the //*MAIN JECL statement in their jobs.
7.4.2 Typical JES2 procedure
Example 7-4 shows a JES2 proc with some PROCLIBs defined using system symbols and some hardcoded.
Example 7-4 Typical JES2 procedure
//JES2 PROC M=JES2IN00,M1=JES2IN&SYSCLONE,
// PL=SYS1.JES2.PARMLIB,
// PROC00='SYS1.PROCLIB',PROC01='SYS1.IBM.PROCLIB'
//IEFPROC EXEC PGM=HASJES20,TIME=1440,DPRTY=(15,15)
//HASPLIST DD DDNAME=IEFRDER
//HASPPARM DD DSN=&PL(&M),DISP=SHR
// DD DSN=&PL(&M1),DISP=SHR
//PROC00 DD DSN=SYS1.&SYSNAME..PROCLIB,DISP=SHR
// DD DSN=&PROC00,DISP=SHR
// DD DSN=&PROC01,DISP=SHR
//PROC01 DD DSN=SYS1.LOGON.PROCLIB,DISP=SHR
// DD DSN=&PROC00,DISP=SHR
// DD DSN=&PROC01,DISP=SHR
//PROC02 DD DSN=SYS1.STARTED.PROCLIB,DISP=SHR
//PROC03 DD DSN=USER.FINANCE.PROCLIB,DISP=SHR,UNIT=3390,VOL=SER=FIN001
JES2 allows you to concatenate two or more members on the HASPPARM DD statement. You can also have INCLUDE statements in the initialization deck data sets. In Example 7-4, member JES2IN00 contains common statements and member JES2INxx contains member-specific statements. Member-specific statements typically include devices such as channel-attached printers that can only be physically attached to one system.
System programmers must ensure all the data sets referenced in the JES2 proc are available or JES2 will fail with a JCL error.
In Example 7-4, the default PROCLIB that a job will use is determined by its jobclass, based on the JOBCLASS statements in the JES2 initialization deck. There can be up to 99 PROCLIB concatenations. JOBCLASS(TSU) uses PROCLIBs concatenation 01 and JOBCLASS(STC) uses concatenation 02. Jobclasses A - Z and 0 - 9 would normally use concatenation 00. If a jobclass was dedicated to finance jobs, the corresponding JOBCLASS statement could specify PROCLIB=03, otherwise finance customers could specify PROCLIB=03 on the /*JOBPARM JECL statement in their jobs.
The recommended method is to dynamically define proclibs using PROCLIB statements in the initialization deck. Using dynamic proclibs allows JES2 to start even if a PROCLIB is missing or was mis-defined in the JES2 initialization statements. If a PROCLIB is not found during JES2 startup, a message can be issued giving the operator the opportunity to correct or bypass the error.
Example 7-5 shows PROCLIB definitions in the JES2 proc.
Example 7-5 Static JES2 PROCLIBs
//PROC00 DD DSN=SYS1.&SYSNAME..PROCLIB,DISP=SHR
// DD DSN=SYS1.PROCLIB,DISP=SHR
// DD DSN=SYS1.IBM.PROCLIB,DISP=SHR
//PROC01 DD DSN=SYS1.LOGON.PROCLIB,DISP=SHR
// DD DSN=SYS1.PROCLIB,DISP=SHR
// DD DSN=SYS1.IBM.PROCLIB,DISP=SHR
//PROC02 DD DSN=SYS1.STARTED.PROCLIB,DISP=SHR
//PROC03 DD DSN=USER.FIN.PROCLIB,DISP=SHR,UNIT=3390,VOL=SER=FIN001
Example 7-6 shows the same set of PROCLIBs being defined dynamic PROCLIB statements.
Example 7-6 Dynamic JES2 PROCLIBs
PROCLIB(PROC00) DD(1)=(DSN=SYS1.&SYSNAME..PROCLIB
DD(2)=(DSN=SYS1.PROCLIB)
DD(2)=(DSN=SYS1.IBM.PROCLIB)
PROCLIB(PROC01) DD(1)=(DSN=SYS1.LOGON.PROCLIB
DD(2)=(DSN=SYS1.PROCLIB)
DD(2)=(DSN=SYS1.IBM.PROCLIB)
PROCLIB(PROC02) DD(1)=(DSN=SYS1.STARTED.PROCLIB
PROCLIB(PROC04) DD(1)=(DSN=SYS1.FIN.PROCLIB
Dynamic proclibs can be added, modified, or removed using the $ADD PROCLIB, $T PROCLIB, or $DEL PROCLIB commands.
7.4.3 Other procedures
The following JES address spaces all start automatically at IPL time. No setup is needed. They shut down automatically when JES2 or JES3 terminates:
JESXCF Common to both JESs
JES2MON Started automatically at JES2 initialization
JES2AUX Auxiliary address space for JES2
JES3AUX Auxiliary address space for JES3
JES3DLOG Hardcopy log for JES3
If a JESplex uses TCP/IP to drive NJE connections, one or more network server address spaces are started. A JES2 network server is named jesxSnnn where jesx is the name of the owning JES2 address space and nnn is the subscript on the NETSERV(nnn) statement. For example, the first network server on a subsystem names JES2 would be JES2S001. A JES3 network server can have any name although a common name is JES3S001. A network server must be defined to the security product as a started task. IBM recommends using a common name pattern for network servers so that only one security profile is needed.
In addition, JES3 can have one or more CIFSS address spaces defined to offload some of the converter/interpreter workload. JES2 can process CI on any member of the JESplex and does not move this processing to a separate address space. In z/OS V2R1, JES2 likewise contains this function.
Both JESs can have one or more writer functional subsystems (FSSs) defined. These work the same way under both JES3 and JES2. An FSS can drive multiple printers. When a writer is called (JES3) or started (JES2) the system checks to see if the appropriate FSS is running. If it is not, the system starts it automatically. An FSS cannot be started with an operator command. The FSS terminates automatically when the last printer it is driving is shut down.
7.5 Automation considerations
JES3 startup issues WTORs to determine the start type, and select the initialization deck for a hot start with refresh, warm starts, or cold starts. JES2 can be started without operator interaction by specifying PARM=’WARM,NOREQ’ on the JES2 START command. The NOREQ parm relieves the operator from having to input $S to start processing. This is the equivalent of coding PARM=NOREQ on the EXEC statement of the JES3 procedure to relieve the operator of having to input *S JSS.
Any automation routines that deal with JES3 startup, shutdown, failures, or restarts will need to be changed to address JES2 messages and commands.
Many automation routines key on JES3 initialization message IAT3100. These must be changed to JES2 message $HASP492.
 
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset