ASRA Abend Calling a CICS Non-Ideal Subprogram from Ideal
search cancel

ASRA Abend Calling a CICS Non-Ideal Subprogram from Ideal

book

Article ID: 56302

calendar_today

Updated On:

Products

Datacom DATACOM - AD Ideal Datacom/AD Datacom/DB Datacom/Server

Issue/Introduction

Are you receiving an ASRA abend when your Ideal program calls a non-Ideal subprogram? Below is a checklist you should review if you experience this.

Environment

Release: Ideal for Datacom

Resolution

  • Make sure the PPT entry for the non-Ideal subprogram is present and specifies the correct language.

    Issue the following command in CICS to verify the PPT entry:

    CEMT I PROGRAM(pgmname)
    Sample output:

    Pro(ifcobol ) Len(0000000) Res(000) Use(000000) Cob Ena Pri Req
    Pro(ifasm ) Len(0000000) Res(000) Use(000000) Ass Ena Pri Req
    Execute a CICS NEW COPY command for the program to verify it can be loaded in CICS.

  • Verify that addressability to the Transaction Work Area (TWA) has been established if passing parameters.

    When calling a CICS Command Level non-Ideal subprogram, Ideal places the parameter list into the TWA before the call. To access the parameters, addressability to the data must be established by the subprogram. 

    The following is sample COBOL code for setting up addressability for a single parameter:

    LINKAGE SECTION.
    01 TWA-LAYOUT.
    02 TWA-ADDR-1 USAGE IS POINTER.
    01 TWA-PARM PIC X(20). <- Parameter passed from Ideal
    PROCEDURE DIVISION.
    000-SETUP-ADDRESSABILITY.
    EXEC CICS
    ADDRESS TWA(ADDRESS OF TWA-LAYOUT)
    END-EXEC.
    SET ADDRESS OF TWA-PARM TO TWA-ADDR-1.
  • Verify that the TWASIZE for the abending transaction is 64.

    The ASRA dump will indicate the abending transaction ID. Use the Ideal command, DISPLAY PCT, and issue the FIND command on the resulting display for the transaction id to verify that the TWASIZE is 64.

  • Make sure that the parameters are defined correctly.

    Numeric data passed between COBOL and Ideal must have corresponding definitions:
    Zoned data N Z 6.2 = PIC S9(6)V99
    Packed data N P 5 = PIC S9(5) COMP-3
    Binary data U B 1 = PIC 9 COMP

  • For z/OS and OS/390 sites, verify the DFHRPL is correct. (For VSE sites, verify the LIBDEF is correct).
    • Is the non-Ideal program linkedited into a library included in the DFHRPL or LIBDEF?
    • Verify that the other libraries ahead of said library in DFHRPL or LIBDEF do not contain the same module name.
    • If a program was recompiled and linked while CICS was up, verify that a CICS NEWCOPYwas performed by issuing the command DBUT M=cobpgm in CICS. Note that the length ofthe CICS stub varies, and the DBUT command will automatically skip over the CICS stub to the beginning of the program. Following is sample output from the DBUT command:

      DBUT M=cobpgm

      *.00..COBABEND C2*
      * 1.3.2 01/08/02 * - COBOL compiler date/time
      *11.57.10......%.*

  • Verify that EXEC CICS RETURN has been properly utilized.

    Make sure that CICS programs return to the calling program with the EXEC CICS RETURN END-EXEC command. The GOBACK may be coded for COBOL to avoid compiler warning messages, but it should never be executed.

  • Are any of the parameters being passed more than 4 KB long?

    There are special coding requirements under CICS when passing a parameter that is more than 4 KB in length. Refer to the IBM CICS Programmer's Guide for more information.