A fix is available
APAR status
Closed as program error.
Error description
User was running a COBOL precompile and due to another error (IEC130I SYSUT1 DD MISSING, and DSNH006I SYSUT1 DD MISSING), a loop occurred when writing to SYSCIN. This eventually ended in a SB37-04 abend and the precompile failed. This APAR is being expanded to also resolve the IEC130I and DSNH006I messages for SYSUT1 DD MISSING. The cause of the error was the parameter list for CLOSE was not being cleared properly, and random dirty storage could have the X'20' bit on which signifies to CLOSE the user has issued the FREE=CLOSE option. FREE=CLOSE is not supported for SYSUT1 for the precompiler. Note, while this APAR is written with a bent towards COBOL, any language being precompiled could experience this issue, if a two pass logic is being used.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: Users of the DB2 for z/OS Precompiler for * * the COBOL host language 810 910 * **************************************************************** * PROBLEM DESCRIPTION: The following two problems are reported * * when precompiling a COBOL application * * using the DB2 precompiler: * * * * 1. DSNH006I is issued sporadically * * when it should not be. * * * * 2. ABENDB37 occurs on the SYSCIN * * dataset when the DB2 precompiler * * issues unrecoverable error * * DSNH006I on SYSUT1 or SYSUT2. * **************************************************************** * RECOMMENDATION: * **************************************************************** When precompiling a COBOL application using the DB2 precompiler, the following two problems may occur. While the first problem can occur either due to a user error or due to uninitialized storage, the second problem is due to the occurrence of the first problem. Both problems will be addressed in this internal APAR. First problem: DSNH006I and IEC130I on SYSUT1/SYSUT2 may occur due to two possible reasons: Reason 1. due to user error If the user specifies FREE=CLOSE for either SYSUT1 or SYSUT2 in the JCL step that executes the precompiler for an application written in COBOL, then DSNH006I will be issued as shown below along with IEC130I. Example: In JCL: //PC.SYSUT1 DD SPACE=(CYL,(10,20)),FREE=CLOSE Message on the console: IEC130I SYSUT1 DD STATEMENT MISSING Message in the precompile listing: DSNH006I U DSNHMAIN FILE "SYSUT1 " COULD NOT BE OPENED Since FREE=CLOSE is not a supported attribute for DD cards used in the precompile step, DSNH006I and IEC130I are correctly issued, but the subsequent ABENDB37 on SYSCIN is unexpected and should not occur. Reason 2. due to uninitialized storage DSNH006I and IEC130I may also be issued sporadically when the storage contains garbage and is used during the closing of SYSUT1 and SYSUT2. This is more likely to occur when DSNHPC is ATTACHed from a wrapper program, but could occur otherwise. Both of these reasons lead to an ABENDB37 on SYSCIN when precompiling a COBOL application. Second problem: ABEND SB37 on SYSCIN ABENDB37 occurs when either SYSUT1 or SYSUT2 cannot be reopened for further processing of the COBOL source. Messages on the console: IEC030I B37-04,IFG0554A,FREECLOS,PC,SYSCIN,04AF,SCR03 ,SYS09282.T182618.RA000.FREECLOS.DSNHOUT.H01 IEF450I PC STEP - ABEND=SB37 U0000 REASON=00000004 Additional keywords: MSGDSNH006I ABENDB37 DB2PRECOMPILER
Problem conclusion
After applying the PTF for this APAR, the DB2 precompiler will initialize storage properly to avoid issuing DSNH006I erroneously. Furthermore, instead of abending with a SB37 on SYSCIN, the DB2 precompiler will exit gracefully when it sees an unrecoverable error opening SYSUT1 or SYSUT2 when processing a COBOL application. Note: DB2 is not being changed to detect the FREE=CLOSE attribute nor override it. Coding FREE=CLOSE is still unsupported and is considered a user error.
Temporary fix
Comments
APAR Information
APAR number
PK97341
Reported component name
DB2 OS/390 & Z/
Reported component ID
5740XYR00
Reported release
810
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2009-09-28
Closed date
2009-10-28
Last modified date
2010-10-22
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UK51517 UK51518
Modules/Macros
DSNHIORT DSNHMAIN DSNHPCIO
Fix information
Fixed component name
DB2 OS/390 & Z/
Fixed component ID
5740XYR00
Applicable component levels
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":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEPEK","label":"Db2 for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}},{"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":"8.1","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
22 October 2010