CA Intertest for CICS does not trap an abend. The program receives a 4038 abend in the CICS log and a IGZ0063S message in CEEMSG.

Document ID : KB000005322
Last Modified Date : 14/02/2018
Show Technical Document Details
Issue:

When moving a numeric field with a value of low values to another numeric field CA Intertest for CICS does not capture the abend (issue an ABP). Instead CICS abends and the CA Intertest for CICS debugging session ends. The following messages are writeen in the CICS output.

In the CICS log the client may see message

DFHAC2236 11/29/2016 13:08:14 A11IC4S6 Transaction BILL abend 4038 in program BILLDEMO term U024. Updates to local recoverable resources will be backed out. 

In the CEEMSG log you see 

U024BILL 20161129130807 IGZ0063S An invalid sign was detected in a numeric edited sending field in BILLDEMO on line number 335. 

U024BILL 20161129130807 From compile unit BILLDEMO at entry point BILLDEMO at compile unit offset +00000D98 at entry offse 

U024BILL 20161129130807 3868CDB8. 

Environment:
Z/OS CICS
Cause:

LE gets control for this type of abend and does not pass control to CA Intertest for CICS with the LE options the client has specified.

Resolution:

When LE is set to TERMTHDACT ==> TRACE 

CA Intertest for CICS is not intercepting the abend. 

So the resolution is to set TERMTHDACT ==> UADUMP.  

If TERMTHDAC is set using CLER then the change is lost after a CICS recycle.You can use the JCL below to create a custom CEEOPT module that you can point to in the CICS regions of your choice.  

CEEROPT RMODE ANY 

CEEXOPT TRAP=((OFF,SPIE),OVR), X 

TERMTHDACT=((UADUMP,CESE,96),OVR) 

END 

Sample JCL below to relink LE module CEEOPT. 

//ASM    EXEC PGM=ASMA90,                                               

// PARM='XREF(FULL),LIST,NODECK,ALIGN,NORENT,OBJ,SYSPARM(MVSXA)'        

//SYSLIB DD DSN=CEE.SCEEMAC,DISP=SHR

//       DD DSN=SYS1.MACLIB,DISP=SHR

//SYSLIN   DD  DSN=&&LOADSET,SPACE=(400,(100,100,1)),UNIT=SYSDA,        

//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=400),DISP=(,PASS)         

//SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(5,1))                             

//SYSUT2   DD  UNIT=SYSDA,SPACE=(CYL,(5,1))                             

//SYSUT3   DD  UNIT=SYSDA,SPACE=(CYL,(5,1))                             

//SYSPRINT DD  SYSOUT=*                                                 

//SYSPUNCH DD  DUMMY                                                    

//SYSIN DD *                                                            

CEEROPT  CSECT                                                          

CEEROPT  AMODE ANY                                                      

CEEROPT  RMODE ANY                                                      

         CEEXOPT TRAP=((OFF,SPIE),OVR),                                X

               TERMTHDACT=((UADUMP,CESE,96),OVR)                        

         END                                                            

/*

//STEP2    EXEC  PGM=IEWL,

//         PARM='NCAL,RENT,LIST,XREF,LET,MAP,SIZE=(9999K,96K)'

//SYSPRINT DD  SYSOUT=*

//SYSUT1   DD  UNIT=SYSDA,SPACE=(TRK,(5,5))

//SYSLMOD  DD  DSN=YOUR.LOAD,DISP=SHR

//SYSLIN   DD  DSN=&&LOADSET,DISP=(OLD,DELETE)                          

//         DD  DDNAME=SYSIN                                             

//SYSIN    DD  *

  ENTRY  CEEROPT

   ORDER CEEROPT

 NAME CEEROPT(R)

/*

//