IBM Support

OA44967: DYNAMIC PROCLIB INCORRECTLY OVERRIDE STATIC PROCLIB UNDER JES2 2.1

A fix is available

Subscribe

You can track all active APARs for this component.

 

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
    

Publications Referenced
SA32098900SA32099000SA32099100SA32099200SA32098901

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