IBM Support

PK97341: ABENDB37-04 WRITING TO SYSCIN DURING COBOL PRECOMPILE IF SYSUT1 DD IS FREED BETWEEN PHASES, AND IEC130I AND DSNH006I FOR SYSUT1

A fix is available

Subscribe

You can track all active APARs for this component.

 

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

  • R810 PSY UK51517

       UP09/11/13 P F911

  • R910 PSY UK51518

       UP09/11/13 P F911

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