APAR status
Closed as canceled.
Error description
System C03 abends occur at task termination when a program opens a data set and DOESN'T CLOSE it before returning to the system. This can be verified with REG0 (REG 0) at the time of the CLOSE (SVC14) in the trace table. If REG0 = E3C3F0C1, then the close was issued by IFG0TC0A and if there are no previous errors, the ERROR IS IN THE APPLICATION. ADDTIONAL SYMPTOMS: ABEND0C4 IN IFG0T0CA+'C56'trying to verify if DCB for DEB that was still on debchain. ABEND0C4 occurs because the storage where DCB resided had been freed prior to task terminating (regardless of ABTERM or normal termination). See also II02095 for additional information. ************************************************************* NOTE: OW00185 fixes problem where ABENDC03 is issued with NO IEC999I message ************************************************************* . As part of task termination, RTM will free user subpool storage that was still allocated when the program terminated. The DCB for the open data set can reside in that storage. When the data management resource manager IFG0TC0A detects the open data set, it program checks when it attempts to access the DCB. IFG0TC0A returns to RTM with return code 4, who then issues the ABENDC03. -NOTE-- RTM does nothing with datasets at all. At task termination, RTM calls a DFP module, IFG0TC0A. IFG0TC0A runs the DEB chain for a terminating task, closing each dataset as it comes to it. If any CLOSEs don't work, IFG0TC0A gives RTM back a bad return and RTM responds by issuing the abendC03. When the ENTIRE PAGE occupied by the DCB(or ACB) has been free'd CLOSE can't work and the abendC03 is inevitable. If, however there is anything else still getmained on the same page as the DCB and the area the DCB is in hasn't been reused, the residual information on that page would be sufficient to close the dataset and the abendc03 does not get issued.. In all events (even when the abendC03 is issued) the dataset is "cleaned up." The difference is, when an abendC03 (and its corresponding msgIEC999I) is issued, you may not get the last buffer written to the dataset. The dataset treatment itself is not inconsistent, but the environment in which this treatment is occurring may not be quite the same. *************************************************************** THE PURPOSE OF THIS APAR IS TO PROVIDE TRACES THAT CAN BE USED IDENTIFY THE APPLICATION THAT IS TERMINATING WITHOUT CLOSING ALL OF ITS OPEN DATA SETS AND TO IDENTIFY THE DATA SETS THAT HAVE BEEN LEFT OPEN. ***************************************************************
Local fix
TO DEBUG AN ABENDC03: 1). Find the program that is accessing the data set. The data set name will be in the IEC999I message. 2). In this program, add WTOs after the opens (SVC 19,22) and the closes and verify that each DCB that gets opened also gets closed. (SVC 20) 3). If you cannot find the program that is causing the failure, set the following slips to find the program, the DEB, and the DCB. A) SLIP SET,SB,A=TRACE,TRDATA=(STD,REGS,2R%,+53,11R%,+3F), RANGE=XXXXXX,JOBNAME=JJJJ,ID=C03A,END where: XXXXXX = EPA of CSECT IFG0198N to be found in a LPAMAP. CSECT IFG0198N is in LMOD IGC0001I. B) Set a slip on the IEC999I message to get a dump. SLIP SET,IF,ACTION=SVCD,LPAMOD=(IGC0003E,0),JOBNAME=xxxxxxxx, DATA=(1R%+4,EQ,C9C5C3F9,1R%+8,EQ,F9F9C940),END Initialize GTF as follows: Start GTF with TRACE=SLIP,SVCP,JOBNAMEP Use trace event keywords SVC=(13,16,19,20,22,117),JOBNAME=JJJ,E For the DUMP dataset: (IPCS) OPTION 4: VERBX MTRACE will give the IEC999I message Get the DEB address from the IEC999I message. For the TRACE dataset: (IPCS) OPTION 4: GTF SVC SLIP will initialize the trace There will be SLIP S+U records everytime IFG0198N is entered. This is the last module in OPEN processing, so we are assuming that this data set gets opened correctly. USR 0040 data will be the DEB in the associated slip USR record. USR 0054 data will be the DCB in the associated slip USR record. THE DCB + X'2D' points to a 3 byte DEB address. THE DEB + X'19' points to a 3 byte DCB address. THE DCB + X'28' for 2 bytes will point to the offset into TIOT Using the DEB address from the IEC999I message, issue find commands until the DEB address is found in the DCB + x'2D' (USR 0054). Find the associated 3 byte DCB address in the DEB + x'19' (USR 0040). Go to the top of the trace and issue a find command on the 3 byte DCB address until it appears in a PLIST of a SVC 19 or SVC 22. The DCB will be the lower 3 bytes of the PLIST. The OPSW in this SVC entry will point to the APPLICATION that issued the open. ************************************************************ ** The APPLICATION is in error and the owners ** ** should be contacted for problem resolution ** ************************************************************ There will also be a MODN (module name) field in the SVC entry that may contain the module name that issued the open. See if there is an SVC 20 with a PLIST (lower 3 bytes) that matches the DCB address. If there is not an SVC 20 with a PLIST (lower 3 bytes = DCB address), then the dataset was not closed by the APPLICATION and before the TASK terminated, the DCB was either FREEMAINED or OVERLAYED. . The ABENDC03 usually occurs when task termination passes the TCBDEBs to task close for final clean-up. If the DCBs are closed properly, then the DEBs are removed from the TCBDEB chain. . In order to maintain proper programming, it is recommended that all APPLICATIONS that open datasets, close them before task termination. A good check is to put in WTOs before opens, SVC 19 or 22, and before the closes, SVC 20, to ensure that all datasets that get opened, get closed.
Problem summary
Problem conclusion
Temporary fix
Comments
THIS IS AN INFORMATIONAL APAR. Following are some problems seen by L2: This ended up being a user error. A user is executing DB2 dsntiual in tso batch, the call is getting a sql -911 resource timeout. The REXX code does not check return code back from sql call and temp data sets created earlier were not closed. Symptoms: MSGIEC999I IEC999I IFG0TC0A MSGIEC161I IEC161I 056-084
APAR Information
APAR number
II04712
Reported component name
V2 LIB INFO ITE
Reported component ID
INFOV2LIB
Reported release
001
Status
CLOSED CAN
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
1990-11-19
Closed date
1990-11-21
Last modified date
2007-01-16
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Applicable component levels
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19N","label":"APARs - OS\/390 environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"","label":""}},{"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":"001","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":"001","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSSN3L","label":"z\/OS Communications Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]
Document Information
Modified date:
13 December 2020