IBM Support

PI48618: IEC161I 124(004)-081 ON RECON DATASET IN BMC ONLINE REORG JOB

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • BMC reported a problem in the online reorg job.
    The job failed by a msg IEC161I on the RECON dataset first;
    .
    IEC161I 124(004)-081,APIPROG1,APISTEP,RECON1,,,IMS.RECON1,,
    IEC161I VCATQAV
    .
    followed by a DBRC message;
    DSP0002I Unable to open RECON1 VSAM RETURN CODE=08
    ERROR CODE=228
    .
    The problem is caused by IMS module DFSVCI00 which cleaned the
    VSAM VAT POINTER for batch job.
    .
    ADDITIONAL SYMPTOMS
    A similar problem also occurred in CA FFOR jobs.
    The job issued msg IEC251I 124-108 and IEC161I 156-061
    on RECON data set.
    .
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * All IMS 14.1 users running jobs which                        *
    * interact with DBRC and then attach a                         *
    * batch IMS instance (DFSRRC00).                               *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * MSGIEC161I, followed by MSGDSP0002I or                       *
    * MSGDSP0300I and possibly DBRC                                *
    * ABENDU2480 when running tools that                           *
    * interact with DBRC and then attach IMS                       *
    * batch.                                                       *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * INSTALL CORRECTIVE SERVICE FOR APAR/PTF                      *
    ****************************************************************
    IMS batch SVC initialization clears field VATVPTR in the VSAM
    VAT control block.  This code was added by very old APAR
    PP29145 in support of test and debug tools, possibly related
    to the situation described in info APAR II06620:
    
    http://www-01.ibm.com/support/docview.wss?uid=isg1II06620
    
    When IMS batch is run as a single job, this clearing does
    not cause a problem.  However, in address spaces (particularly
    tools) that both access DBRC directly and then attach IMS
    batch (DFSRRC00), the following can occur:
    
      - Calls to DBRC cause DBRC to open the RECON and create
        an LSR pool for it.  The VSAM VATVPTR points to VSAM
        information about the pool.
    
      - IMS batch is attached and clears the VATVPTR field as
        part of SVC initialization.  As part of the execution
        of batch, the RECON happens to take an extent.
    
      - After the batch instance completes, another DBRC call is
        made.  DBRC detects that the RECON has been extended,
        and issues a CLOSE and OPEN to pick up the new extent
        information.
    
      - VSAM attempts to find the LSR pool ID via the now-cleared
        VATVPTR field, and fails.
    
    VSAM issues message IEC161I such as:
    
      IEC161I 124(004)-081,APIPROG1,APISTEP,RECON1,,,
              IMSTESTL.IMS.RECON1,,
      IEC161I VCATQAV
    
    Depending on where in DBRC the problem is detected, one of the
    following DBRC messages may also be issued:
    
      DSP0002I Unable to open RECON1 VSAM RETURN CODE=08 ERROR
               CODE=228
    
    or
    
      DSP0300I INTERNAL DBRC ERROR DSPURI30(PM70978 )+X1136 #03
               TERM/DUMP DIAG=NO RECON AVAILABLE
    
    DBRC may also issue a U2480 ABEND.
    

Problem conclusion

  • Note that this APAR provides the mechanism for other products
    to request the bypass of the VATVPTR clearing to avoid the
    VSAM errors.  It does not, on its own, stop the VSAM errors
    without changes to affected products.  The above information
    has been communicated to the software vendors with products
    known to be affected.
    
    --------
    
    Because IMS batch has cleared the VATVPTR field for over 30
    years, it is difficult to know what tools and other programs
    could be affected were this to be changed in a field APAR.
    Instead, this APAR changes IMS to provide a programmatic way
    for code that attaches IMS batch to cause SVC initialization
    to bypass the clearing of the field.  Products that interact
    with DBRC and also attach DFSRRC00 for IMS batch can use either
    of the following methods to cause batch SVC initialization to
    not clear VATVPTR:
    
    1. A program or product that has a hook into early IMS
       initialization (prior to the DFSVCI INITSVC call issued
       out of DFSRRA00) can set flag SCDSNVCL (X'02') in byte
       SCDSMFIX in the SSCD (defined in the SSCD macro).  If this
       bit is set, the INITSVC call will skip the clearing of
       VATVPTR.
    
    2. Prior to attaching IMS batch, a program can create a
       home-level z/OS name-token.  The name must be
    
         "DFSINITSVCOPTS  "
    
       The token must have one of two flag bits set in the first
       byte, and the remaining bits of the token must all be set
       to zero.  EQUs for the name, and a DSECT mapping for the
       token are found in macro DFSVCPRM.
    
       The two possible flag values for the token are:
    
         INITSVC_NTB0_NOVATCLR (X'80'): When set, indicates that
         INITSVC should __not__ clear VATVPTR, regardless of the
         setting of flag SCDSNVCL when INITSVC is called.
    
         INITSVC_NTB0_VATCLR (X'40'): When set, indicates that
         INITSVC __should__ clear VATVPTR, regardless of the
         setting of flag SCDSNVCL when INITSVC is called.
    
       If the name-token is found, but if neither bit is set (or if
       both bits are set), the code behaves as if the name-token
       did not exist (i.e., the value of SCDSNVCL will determine
       the VATVPTR clearing behavior).
    
    Note that the presence of the name-token with one or the other
    of the two flags set will override any setting of the SCDSNVCL
    when the INITSVC call is issued.  That is, approach 2
    supersedes approach 1.
    
    The SCD flag SCDSNVCL may be set, and/or the DFSINITSVCOPTS
    name-token may be created whether or not this APAR is
    installed in IMS.  However, these indicators are only
    effective in preventing the VATVPTR clearing when the APAR
    is present.
    
    The following is sample code illustrating approach 2 to create
    a z/OS name-token to bypass VATVPTR clearing:
    
    --------
    
    ****************************************************************
    * Set R15 to point to the IEANTCR name-token create routine,   *
    * as documented in the z/OS macros books.                      *
    ****************************************************************
             L     R15,X'10'               Get A(CVT)
             L     R15,X'220'(,R15)        Follow chain per doc in
             L     R15,X'14'(,R15)          MVS Auth Assembler Ref
             L     R15,X'04'(,R15)         Get IEANTCR addr
    
    ****************************************************************
    * Create a name-token with name = DFSINITSVCOPTS and token     *
    * with INITSVC_NTB0_NOVATCLR set to suppress VATVPTR clear.    *
    ****************************************************************
             CALL  (15),(LVLHOME,MYNAME,MYTOKEN,ZERO,DS_RETCODE),  X
                   MF=(E,DS_NTPLIST)
    
             ICM   R15,15,DS_RETCODE
             JNZ   ERROR
    
             ...
    
      <attach IMS batch after this point>
    
             ...
    
    ****************************************************************
    * Static area                                                  *
    ****************************************************************
    
    *------------------------------------------------------------*
    * Declare the 16-character name for the INITSVC name-token,  *
    * using the four 4-character EQUs declared in DFSVCPRM       *
    * macro.                                                     *
    *------------------------------------------------------------*
    MYNAME   DS    0CL16
             DC    A(INITSVC_NTNAME1)      'DFSI'
             DC    A(INITSVC_NTNAME2)      'NITS'
             DC    A(INITSVC_NTNAME3)      'VCOP'
             DC    A(INITSVC_NTNAME4)      'TS  '
    
    *------------------------------------------------------------*
    * Declare the 16-character token for the INITSVC name-token, *
    * sett the "do not clear VATVPTR" flag.                      *
    *------------------------------------------------------------*
    MYTOKEN  DC    0CL16
             DC    AL1(INITSVC_NTB0_NOVATCLR)  No clear of VATVPTR
             DC    XL15'0'                     Remaining flags zero
    
    LVLHOME  DC    F'2'                    Home level name token
    ZERO     DC    F'0'                    Zero flags
    
             ...
    
    ****************************************************************
    * Dynamic storage area                                         *
    ****************************************************************
    DS_RETCODE   DS       F                Where to put return code
    DS_NTPLIST   DS       5F               5 words for parmlist
    
             ...
    
             DFSVCPRM ,                    Include INITSVC symbols
    
    --------
    
    Code changes:
    
    DFSVCPRM MACRO:
    ---------------
    Add definitions for DFSINITSVCOPTS name and token flag bits.
    
    IRCVECT MACRO:
    --------------
    Add IRCFLAG1 and flag IRCF1XVP to be set when DFSVCI00 does
    clear VATVPTR (as diagnostics to help with any future issues
    in this area).
    
    SSCD MACRO:
    -----------
    Add flag SCDSNVCL (X'02') to existing byte SCDSMMSK to indicate
    that DFSVCI00 should not clear the VSAM VATVPTR field.  Also,
    put SCDSMMSK flags in correct numeric order, and add commented-
    out EQUs for reserved bits.
    
    DFSVCI00 ASSEMBLE:
    ------------------
    Add new subroutine CHKNTOPT to attempt a z/OS name-token
    retrieve of DFSINITSVCOPTS.  If found, set or reset SCDSNVCL
    flag appropriately based on token flag settings.
    
    Skip VATVPTR clear if SCDSNVCL is set.  Set new diagnostic
    flag IRCF1XVP if DFSVCI00 does clear VATVPTR.
    
    DFSEF63F PLX370:
    ----------------
    Recompile for IRCVECT dump format list change.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI48618

  • Reported component name

    IMS V14

  • Reported component ID

    5635A0500

  • Reported release

    400

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2015-09-11

  • Closed date

    2015-09-29

  • Last modified date

    2015-10-02

  • APAR is sysrouted FROM one or more of the following:

    PI47270

  • APAR is sysrouted TO one or more of the following:

    UI31597

Modules/Macros

  • SSCD     DFSEF63F IRCVECT  DFSVCI00 DFSVCPRM
    

Fix information

  • Fixed component name

    IMS V14

  • Fixed component ID

    5635A0500

Applicable component levels

  • R400 PSY UI31597

       UP15/10/01 P F509

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":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPH2","label":"IMS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"14.1","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
01 December 2023