A fix is available
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:
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