A fix is available
APAR status
Closed as program error.
Error description
Several different errors have been reported for this problem during DLET/REPL calls: ABENDU0808 ABENDU0797 ABENDU0852 ABENDU3498 ABENDU0806 ABENDU3923 STATUSDA . The window that allows these errors to occur involves the following conditions: - HALDB - REPL call (or REPL call preceding an ISRT for same PCB) - Last GET call preceding the REPL returned a STATUSGE - Two or more databases with Logical Relationships - Different block sizes and number of partitions in LC/LP . Details: logic in DFSDLA00 routines DLETREPL, DLETRPL2, and DLETRPL3 can select and pass conflicting partition information to DFSPSEL FUNC=NAMED. In customer's case, DSGPID values can reference partitions in the LP database while LEVSEGOF values can reference partitions in the LC. Comparisons made using "CLC DSGPID-DSG(2,R4),LEVSEGOF SAME PARTITION? " will lead to incorrect outcomes. PID information passed to DFSPSEL TYPE=NAMED can result in a U3498 (LEVSEGOF PID value too high), or selection of the wrong partition in the wrong database (the other abends). . In the U3498 case, the flow showed LC partition PID=16 from LEVSEGOF and LP partition DSGPID=01 were passed to the DFSPSEL0 FUNC=NAMED routine. Since PID=16 for the LC DB partition was greater than the maximum PID=10 in the LP DB, the U3498 was issued. . In the U3923 case, the flow showed LC partition PID=01 from LEVSEGOF and LP partition DSGPID=08 were passed to the DFSPSEL0 FUNC=NAMED routine. Since PID=01 for the LC DB partition matched PID=01 in the LP DB, the LP PID=01 AMP, DMBNO, PID, and REORG info were stored in the DSG for LC, thereby overwriting the data already there. . The flows through DFSDLA00 and DFSPSEL0 for the U0797, U0806, U0852, and STATUSDA are similar to the U3923. However, instead of returning to DFSDLA00 to issue the U3498, these other flows pass control to DLET/REPL module DFSDLDC0 for processing, using the incorrect database positioning.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All IMS V12 using HALDBs with logical * * relationships issuing a REPL call after a * * GHU path call using command code D. * **************************************************************** * PROBLEM DESCRIPTION: A GHU path call using command code D * * against a logically related HALDB * * receives a status GE. The next call is * * a replace ( REPL ) call which receives * * any one of the following abends: * * ABENDU0797, ABENDU0806, ABENDU0808, * * ABENDU0852, ABENDU3498, or STATUSDA. * **************************************************************** * RECOMMENDATION: INSTALL CORRECTIVE SERVICE FOR APAR/PTF * **************************************************************** During a replace call abends U0797, U0806, U0808, U0852, U3498, or DA status code can occur. Prior to the replace call a GU call is issued against a logically related HALDB. The GU call is a path call with command code D qualified at the root level down to the fourth level segment. The fourth level segment is qualified with command code N. The second level segment is a Bidirectional Physically Paired logical child paired with the ( logical parent ) physical root segment in HALDB "B". During retrieve processing of a GU call module DFSDLR00 routine THISLVOK calls routine MVSEGUSE to return each segment in the path call for a command code D call. When the call is a GU call routine FNDLPNQ will not be called and logical parent positioning does not occur. As a result the DSG in register 8 upon return from routine MVSEGUSE will be the DSG for HALDB "A". This DSG is used to store the partition id ( DSGPID ) into LEVSEGOF after label TLKB in routine THISLVOK. * The subsequent call is a GHU path call using command code D similar to the GU call. With existing position set from the prior GU call and LEVSEGOF is equal to the partition id from HALDB "A", routine LTW is called to process the GHU path call. During retrieve processing routine LTW calls routine MVSEGUSE after label LTW2000 to return each segment in the path call with command code D. Since the call is a GHU routine FNDLPNQ is called and logical parent positioning will occur. A GE status code ( STATUSGE ) is returned at the fourth level segment using command code N. Levels 1 thru 3 are retrieved successfully including the physically paired logical child segment. After the logical child segment is retrieved the partition id in DSGPID is equal to the current partition id in HALDB "B" and the partition id in LEVSEGOF is not current. * The next call is a replace call. During replace processing module DFSDLA00 after label DLETREPL will select a partition based upon the value in LEVSEGOF compared with the value in DSGPID. When these values differ after label DLETRPL3 partition selection is called with function DFSPSEL PART=NAMED TYPE=PID. With the residual partition id in LEVSEGOF the wrong partition will be selected. Depending on the number of partitions in HALDB "B" unpredictable results can occur. If the residual partition id in LEVSEGOF is equal to or less than the maximum number of partitions in HALDB "B" then partition selection will be successful. In this case the wrong partition can be selected and the replace call can terminate with a ABENDU0797, ABENDU0806, ABENDU0808, ABENDU0852, or STATUSDA. If the residual partition id in LEVSEGOF is larger than the maximum number of partitions in HALDB "B" then partition selection will terminate with ABENDU3498.
Problem conclusion
GEN: KEYWORDS: *** END IMS KEYWORDS *** ************ * DFSDLR00 * ************ Code is modified in module DFSDLR00 after label TLKB in routine THISLVOK to store the current partition ID into LEVSEGOF after label TLKA when returning from routine MVSEGUSE. Code has been added to routine LTW after label LTW100 to initialize LEVSEGOF and set LEVSEGOF after label LTW2000 when returning from MVSEGUSE.
Temporary fix
********* * HIPER * *********
Comments
APAR Information
APAR number
PI12013
Reported component name
IMS V12
Reported component ID
5635A0300
Reported release
201
Status
CLOSED PER
PE
NoPE
HIPER
YesHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2014-02-18
Closed date
2014-03-13
Last modified date
2014-04-02
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
PI12514 UI16004
Modules/Macros
DFSDLR00
Fix information
Fixed component name
IMS V12
Fixed component ID
5635A0300
Applicable component levels
R201 PSY UI16004
UP14/03/15 P F403
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"},"Platform":[{"code":"PF054","label":"z Systems"}],"Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
14 December 2020