A fix is available
APAR status
Closed as program error.
Error description
Customer shuts down IMS and adds new DEDB with 24K CI size to active directory. There were no DEDBs with this CI size or larger up to this point. The Areas for the DEDB are registered in DBRC as PREOPEN. Customer warms starts IMS. PREOPEN runs and DBFCMOC1 gets a work buffer for DBRC Authlist. It requests the largest size, passing zero for DMAC address, and buffer size. The logic in DBFBPNI0 to find largest buffer size looks at all DBFBPND9s, but checks BPND9_flag1,BPND9_f1_avail to see if the subpool has actually been created ( buffers allocated ) to see if size should be considered. In a COLD start, DBFINI2R is called and will allocate buffers for all buffer sizes found in ACBLIB/Directory, but for WARM start, it is not called, and pools are built based on 4081 log records in the restart checkpoint. So the largest buffer pool actually built in this case is 8k, not 24K. This is all OK except DBFCMOC1 passes this buffer to DBFMLOP0 in in EPSTIOSV, and if present, DBFMLOP0 checks this buffer size vs Area CI size and if buffer size is smaller, issues DFS3702I RSN04 and stops the Area. DBFCMOC1 should not pass thebuffer it gets to DBFMLOP0 in EPSTIOSV. The code where CALLOPEN is called, saves DMHR from EPSTIOSV in R3 over call, and stores it back into EPSTIOSV upon return, but does not clear EPSTIOSV before CALLOPEN is called. clear EPSTIOSV before CALLOPEN is called. It does not matter that the original buffer is to small because it is used for AUTHLIST, not DMAC read, anyway. DBFMLOP0 has cod in MLOPGBUF that will get a new buffer if EPSTIOSV is zero and pass DMAC address on the call, which will result in DBFBPNI0 creating the new 24k subpool and passing back a correct size buffer.
Local fix
COLD start after adding DEDB with new, larger, CI size, or don't register the new Area(s) as PREOPEN in DBRC.
Problem summary
**************************************************************** * USERS AFFECTED: * * IMS V15 FP 64 bit buffer manager users * **************************************************************** * PROBLEM DESCRIPTION: * * DFS3702I REASON CODE=04 ON PREOPEN AFTER WARM START WHEN * * DEDB AREA CI SIZE CHANGED TO BE LARGER THAN ANY PREVIOUS * * AREA * **************************************************************** * RECOMMENDATION: * * INSTALL CORRECTIVE SERVICE FOR APAR/PTF * **************************************************************** Customer shuts down IMS and adds new DEDB with 24K CI size to active directory. There were no DEDBs with this CI size or larger up to this point. The Areas for the DEDB are registered in DBRC as PREOPEN. Customer warms starts IMS. PREOPEN runs and DBFCMOC1 gets a work buffer for DBRC Authlist. It requests the largest size, passing zero for DMAC address, and buffer size. The logic in DBFBPNI0 to find largest buffer size looks at all DBFBPND9s, but checks BPND9_flag1,BPND9_f1_avail to see if the subpool has actually been created ( buffers allocated ) to see if size should be considered. In a COLD start, DBFINI25 is called and will allocate buffers for all buffer sizes found in ACBLIB/Directory, but for WARM start, it is not called, and pools are built based on 4081 log records in the restart checkpoint. So the largest buffer pool actually built in this case is 8k, no 24K. This is all OK except DBFCMOC1 passes this buffer to DBFMLOP0 in EPSTIOSV, and if present, DBFMLOP0 checks this buffer size vs Area CI size and if buffer size is smaller, issues DFS3702I RSN04 and stops the Area. I think the fix for this is simple. DBFCMOC1 should not pass the buffer it gets to DBFMLOP0. The code where CALLOPEN is called, saves DMHR from EPSTIOSV in R3 over call, and stores it back into EPSTIOSV upon return, but does not clear EPSTIOSV before CALLOPEN is called.
Problem conclusion
DBFMLOP0 Added code to check incoming DMHRBLKL of DMHR and DMACBLKL and to get new DMHR of length DMACBLKL when the incoming DMHRBLKL is smaller than DMACBLKL. DBFNRST0 Fixed NRSTDMHR routine to store length of DMHR in DMHRBLKL
Temporary fix
Comments
APAR Information
APAR number
PH55688
Reported component name
IMS V15
Reported component ID
5635A0600
Reported release
500
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2023-07-11
Closed date
2024-01-30
Last modified date
2024-03-03
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UI95490
Modules/Macros
DBFMLOP0 DBFNRST0
Fix information
Fixed component name
IMS V15
Fixed component ID
5635A0600
Applicable component levels
R500 PSY UI95490
UP24/02/02 P F402
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":"BU048","label":"IBM Software"},"Product":{"code":"SSEPH2","label":"IMS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"15","Line of Business":{"code":"LOB70","label":"Z TPS"}}]
Document Information
Modified date:
04 April 2024