A fix is available
APAR status
Closed as program error.
Error description
This APAR adresses 2 problems against dynamic proclib management under JES2 2.1. Case #1 ------- JES2 has the following static proclib defined in its JCL: //PROC01 DD DSN=CPAC.PROCLIB,DISP=SHR // DD DSN=SYS1.PROCLIB,DISP=SHR Both datasets are cataloged on volume ABCDEF. The following PROCLIB statement is in JES2 init deck to override static PROC01: PROCLIB(PROC01) DD(1)=(DSN=JFB.PROCLIB) . Dataset JFB.PROCLIB is cataloged on volume XYZXYZ. After JES2 is started, a $DPROCLIB(PROC01) shows: . $DPROCLIB(PROC01) $HASP319 PROCLIB(PROC01) DD(1)=(DSNAME=JFB.PROCLIB, $HASP319 VOLSER=ABCDEF,UNIT=SYSALLDA), $HASP319 DD(2)=(DSNAME=SYS1.PROCLIB, $HASP319 VOLSER=ABCDEF,UNIT=SYSALLDA) . We have merged info from the static proclib to the dynamic proc01. - VOLSER of JFB.PROCLIB is incorrect (should be volser XYZXYZ) - We have carried DD2 into the dynamic. . Case #2 ------- JES2 is up and running with only static PROC00 defined as follow: //PROC00 DD DSN=CPAC.PROCLIB,DISP=SHR . Next, an attempt to alter PROC00 is done via an addition and rename of the proclib: $ADDPROCLIB(TEMP),DD(1)=(DSNAME=JFB.PROCLIB) $TPROCLIB(TEMP),NAME=PROC00 If we want to fallback to static PROC00: $DELPROC(PROC00) . Instead of falling back to static PROC00, command $DPROCLIB(PROC00): $HASP003 RC=(52),D 336 $HASP003 RC=(52),D PROCLIB - NO SELECTABLE ENTRIES FOUND $HASP003 MATCHING SPECIFICATION . For either cases, message $HASP307 and/or IEF143I will be received during job submission: IEC143I 213-04,IFG0194D,JES2,JES2,$PR00001,8964,JS21CA, 631 JFB.PROCLIB $HASP307 BR15 can not access PROCLIB PROC01 - OPEN failure . External Symptoms: Submitted jobs pointing to that proc will fail with $HASP307 and/or IEF143I. . Customer Impact: Inability to submit jobs using the specified PROC
Local fix
Hotstart or reallocate the dynamic proclib explicitely specifying all correct keywords.
Problem summary
**************************************************************** * USERS AFFECTED: All users of HJE7790 * **************************************************************** * PROBLEM DESCRIPTION: Problems with PROCLIB statement * * support: * * - Init statement incompatibility * * - Renaming PROCLIB inconsistencies * * - Incorrect PROCLIB use counts * **************************************************************** * RECOMMENDATION: * **************************************************************** The following problems are addressed in this APAR: - PROCLIB initialization statements should not be impacted by PROCLIB DD statements in the JES2 PROC. But with the changes in z/OS 2.1, the init statements use the PROCLIB DD statements in the JES2 PROC as a base instead of starting from scratch. - A $T PROCLIB(xxxxxxxx),NAME=yyyyyyyy command can be used to alter the name of a static PROCLIB (one defined in the JES2 PROC) or result in a STATIC PROCLIB being deleted. If a PROCLIB is defined in the JES2 PROC, there should be no way to delete that PROCLIB. In other words, if there is a PROC00 in the JES2 PROC, there will always be a PROC00 concatenation. - The use count associated with a PROCLIB concatenation, displayed using $D PROCLIB,USECOUNT or $D PROCLIB,DEBUG, can be wrong. Depending on the situation, it can be high or low (and even go negative). - In one case, the attempt to update the use count for the PROC00 PROCLIB could be attempted without setting the proper ALET. This results in a random word addressable from the JES2 address space being decremented. The address of the word decremented always ends in an 8.
Problem conclusion
TYPE/RESTART(WARM) IPL/REQUIRED(YES) CLPA(YES) CLPA is needed only if HASCxxxx modules currently reside in the pageable link pack area (PLPA). The following fixes have been made in this APAR: - PROCLIB initialization statements will never be primed with the concatenation of a static PROCLIB DD statement - The $T PROCLIB(xxxxxxxx),name=yyyyyyyy command will now properly manage static PROCLIBs. - The code that maintains the use count in PROCLIBs was corrected to properly manage the count. - The storage overlay due to the missing setting of the PAD ALET has been corrected. The information in the following JES2 manual/publication is missing/incorrect: 1. SA32-0991-00 z/OS V2R1.0 JES2 Initialization and Tuning Guide (for HJE7790) In Chapter 1 JES2 initialization under the section "Using dynamic PROCLIB allocation" the following changes are made: The following paragraph is updated: The JES2 PROCLIB specifications are primed with the static PROCLIBs (from the JES2 PROC) during initialization | processing. You can display the static PROCLIBs during | initialization but cannot alter them. A PROCLIB | initialization statement with the same subscript as a static | PROCLIB will create a new dynamic PROCLIB but no data sets | will be copied from the static PROCLIB. This works the same | as a $ADD PROCLIB command with an existing static PROCLIB. | The dynamic PROCLIB concatenation overrides the static | PROCLIB. You can delete the logical PROCLIB concatenation | after initialization using the $DEL PROCLIB(xxxxxxxx) command, | but you cannot delete or alter the static PROCLIB. 2. SA32-0992-00 z/OS V2R1.0 JES2 Initialization and Tuning Reference (for HJE7790) The PROCLIB(xxxxxxxx) - Dynamic PROCLIB definition section is updated as follows: The PROCLIB parameter is primed with the static PROCLIB concatenations from the JES2 PROC. PROCLIB(xxxxxxxx) initialization statements that reference the same DD name as a | static PROCLIB DD will create a new dynamic PROCLIB but no | data sets will be copied from the static PROCLIB. The dynamic | PROCLIB concatenation overrides the static PROCLIB. In addition, the description of NAME= parameter is also updated: NAME=xxxxxxxx Intended mostly for $T command, NAME= allows the name of a | dynamic PROCLIB concatenation to be changed. For example, specifying PROClib(TEST01) NAME=PROC01 renames the TEST01 PROCLIB concatenation to PROC01. | You cannot rename a static PROCLIB. If a static PROCLIB is | overridden by a dynamic PROCLIB, renaming the dynamic PROCLIB | will restore the static PROCLIB. So in the above example, if | PROC01 started as a static PROCLIB, and TEST01 was renamed | PROC01, then the statement PROCLIB(PROC01) NAME=TEST01 would | rename the dynamic PROCLIB back to TEST01 and restore to | active status the static PROC01 concatenation. 3. SA32-0990-00 z/OS V2R1.0 JES2 Commands (for HJE7790) The $T PROCLIB(xxxxxxxx) - Modify an existing dynamic PROCLIB concatenation section is updated under the description of NAME= parameter. NAME=xxxxxxxx | Allows the name of an existing dynamic PROCLIB concatenation to be changed. Specifying PROC(TEST01) NAME=PROC01 will rename the TEST01 PROCLIB concatenation to PROC01. If there is an existing PROC01 concatenation, it is replaced by the current TEST01 concatenation. This is useful for testing new concatenations before putting them into production. | You cannot rename a static PROCLIB. If a static PROCLIB is | overridden by a dynamic PROCLIB, renaming the dynamic PROCLIB | will restore the static PROCLIB. So in the above example, if | PROC01 started as a static PROCLIB, and TEST01 was renamed | PROC01, then a $T PROCLIB(PROC01),NAME=TEST01 would rename the | dynamic PROCLIB back to TEST01 and restore to active status | the static PROC01 concatenation. 4. SA32-0989-00 z/OS V2R1.0 JES2 Messages (for HJE7790) 4. SA32-0989-01 z/OS V2R1.0 JES2 Messages (with December, 2013, updates) The description of the $HASP003 message reason code 149 is updated as follows: 149 CAN NOT DELETE parameter. | RENAME | A $T or a $DEL command was issued to alter the parameter | specified. The object cannot be processed in the way being | requested. The parameter value in the message indicates the | object of the command. See the specific command for an | explanation of the restriction. Updates will only be made to the JES2 manuals in future z/OS releases. APAR OA44967 prereq's (and sup's) for FMID HJE7790: Pre's: HA42962 HA43894
Temporary fix
*** * TEMPORARY FIX MAY BE OBTAINED FROM DLL OR INFO/ACCESS **** ******************* OA44967 DECK AVAILABLE ********************
Comments
APAR Information
APAR number
OA44967
Reported component name
JES2
Reported component ID
5752SC1BH
Reported release
790
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2014-04-08
Closed date
2014-06-27
Last modified date
2014-08-04
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UA73995
Modules/Macros
HASCCNVS HASCJBTR HASCSCAN HASCSRCI HASMTABL HASPCNVT HASPMISC HASPSXDV HASPSXIT
| SA32098900 | SA32099000 | SA32099100 | SA32099200 | SA32098901 |
Fix information
Fixed component name
JES2
Fixed component ID
5752SC1BH
Applicable component levels
R790 PSY UA73995
UP14/07/09 P F407
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"790","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":null,"label":null},"Product":{"code":"SG19O","label":"APARs - MVS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"790","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
04 August 2014