db2callcobolcics

Abend ASRA. How to deal with this


I have a map which has two input fields with data types X(6),9(8) I store these two values in the below variables in my cobol-cics program.

01 SCREEN-DATA.        
05 ACTNUM PIC X(6). 
05 AMOUNT PIC 9(8). 

Now i am passing these two values to cobol-db2 program:

CALL UPDATEPROG USING ACTNUM,AMOUNT.

In my update program:

LINKAGE SECTION.                                                 
01 DEPOSITPARAMS.                                                
05 ACTNUM PIC X(6).                                           
05 AMOUNT PIC 9(8).                                           
PROCEDURE DIVISION USING DEPOSITPARAMS.                          
MOVE ACTNUM TO ACCOUNT-NUMBER.

Where ACCOUNT-NUMBER is my host variable of the table i've created. It is fine in running the program but in my map when i entered the details and pressed enter, i am getting an abend. When i gave some static value like: MOVE 071250 TO ACCOUNT-NUMBER. It's working fine and i was able to update,retrieve values from the table using queries.What might be the cause for this abend. Please help me with this problem

These are my host variables created in DCLGEN

01  DCLACCOUNT-MASTER.                            
10 ACCOUNT-NUMBER       PIC X(6).                   
10 ACCOUNT-HOLDER       PIC X(20).                  
10 ACCOUNT-BALANCE      PIC S9(8)V9(2) USAGE COMP-3.
10 LAST-UPDT-DATE       PIC X(10).                  
10 OPENNING-DATE        PIC X(10).     

Another observation i made is, wherever i am using the ACTNUM variable i.e., the linkage section variable. I am getting abend


Solution

  • I'm guessing you mean ASRA for the abend code.

    Look in the core dump, if you have compiled with the TEST option you should have a formatted dump showing your Working-Storage, Local-Storage, and Linkage Section variables and their values. I suspect you have non-numeric values in your AMOUNT field.

    In CICS, the core dump in written to the CESE Transient Data Queue, often mapped by the CICS Systems Programmer to the CEEMSG DD of the CICS region. Do a find on CEE3845 to find the top of a core dump, this is the message ID of the Language Environment message containing a detailed description of what went wrong and caused the abend.