Abend in a user-defined extension

Information that applies only when you have written your own C language user-defined extension.

If the integration node on IBM® Integration Bus for z/OS® abends, and you have a user-defined extension written in the C programming language, you can use the traceback to locate the source of the problem.

The traceback is placed into a CEEDUMP file, which resides in the <component_HFS>/common/errors directory.

Each traceback is preceded by the date, time, and unique identifier; for example, CEEDUMP file - CEEDUMP.20080924.171754.84017230

Consider the following example trace in the CEEDUMP file:
  Traceback:
    DSA Addr  Program Unit  PU Addr   PU Offset  Entry         E Addr    E  Offset   Statement  Load Mod  Service  Status
    38F9DBD0  CEEVRONU      0707D2B8  +00001004  CEEVRONU      0707D2B8  +00001004              CEEPLPKA  HLE7730  Call
    390253A0                1DF418F8  +000000DE  ImbAbend::printStackForCurrentThread(int,bool,const void*,vo
                                                               1DF418F8  +000000DE              *PATHNAM  FP2....  Call
    39025780                1E221258  +000003C2  ImbAbend::terminateProcessInternal(const void*,const bool,vo
                                                               1E221258  +000003C2              *PATHNAM  FP2....  Call
    39026080                1DF457F8  +000005BE  IMBCOND       1DF457F8  +000005BE              *PATHNAM  FP2....  Call
    39026120                0707B2E0  +00001252  CEEVROND      0707B338  +000011FA              CEEPLPKA           Call
    38F9A928  CEEHDSP       06F7C4D0  +000024BC  CEEHDSP       06F7C4D0  +000024BC              CEEPLPKA  HLE7730  Call
    38F99DA8  CEEHRNUH      06F8B010  +00000092  CEEHRNUH      06F8B010  +00000092              CEEPLPKA  HLE7730  Call
    390261E0                38F39BB0  +000000F2  _NumCompute_evaluate
                                                               38F39BB0  +000000F2              *PATHNAM           Exception
    39027B00                33EFF078  +000004E4  ImbCniNode::evaluate(const ImbMessageAssembly&,const ImbData
                                                               33EFF078  +000004E4              *PATHNAM  FP2....  Call
    39028840                201AE2B0  +00000208  ImbDataFlowTerminal::evaluate(const ImbMessageAssembly&)
                                                               201AE2B0  +00000208              *PATHNAM  FP2....  Call
    39028920                201AE078  +000000BE  ImbDataFlowTerminal::propagateInner(const ImbMessageAssembly
                                                               201AE078  +000000BE              *PATHNAM  FP2....  Call
    39029220                201ABD70  +00000552  ImbDataFlowTerminal::propagate(const ImbMessageAssembly&)
                                                               201ABD70  +00000552              *PATHNAM  FP2....  Call
    39029360                32AC4878  +00003C2E  ImbCommonInputNode::run(ImbOsThread*)
                                                               32AC4878  +00003C2E              *PATHNAM  FP2....  Call
    3902BA00                32AD3488  +00000046  ImbCommonInputNode::Parameters::run(ImbOsThread*)
                                                               32AD3488  +00000046              *PATHNAM  FP2....  Call
    3902BA80                1DE7FD98  +00000074  ImbThreadPoolThreadFunction::run(ImbOsThread*)
                                                               1DE7FD98  +00000074              *PATHNAM  FP2....  Call
    3902C400                1E10A2E8  +000000A8  ImbOsThread::innerThreadBootStrapWrapper(void*)
                                                               1E10A2E8  +000000A8              *PATHNAM  FP2....  Call
    3902CD20                1E109E80  +0000025A  ImbOsThread::threadBootStrap(void*)
                                                               1E109E80  +0000025A              *PATHNAM  FP2....  Call
    3902D6A0                1E109E38  +00000008  threadBootStrapWrapper
                                                               1E109E38  +00000008              *PATHNAM  FP2....  Call
    3902D720                0707B2E0  +00001252  CEEVROND      0707B338  +000011FA              CEEPLPKA           Call
    38FAAEE0  CEEOPCMM      00035438  +00000908  CEEOPCMM      00035438  +00000908              CEEBINIT  HLE7730  Call
The message you see in the integration server joblog is:
CEE0374C CONDITION=CEE3204S TOKEN=00030C84 59C3C5C5 00000000                
         WHILE RUNNING PROGRAM _NumCompute_ev WHICH STARTS AT 38F39BB0      
         AT THE TIME OF INTERRUPT                                           
         PSW     078D1400 B8F39CA6                                          
         GPR 0-3 00000008 1C097DA8 00000001 1C097D88                        
         GPR 4-7 390261E0 00000000 1B049080 B8F39C9A                        
         GPR 8-B 33F093E8 1F9E1808 38F3A1D8 00000000                        
         GPR C-F 38F98BD8 33FC1B20 39026C90 00000000                        
         FLT 0-2 0000000000000018  0000000000000000                         
         FLT 4-6 4018500208C00000  0000000000000000                         

By studying the joblog and the preceding trace output, you can see that the abend is happening in a function called _NumCompute_evaluate. The following statement in the trace calls ImbCniNode::evaluate which tells you that the error has occurred in a user-defined extension.

Next, you see the following in the joblog or syslog:
IEA794I SVC DUMP HAS CAPTURED: 577                           
DUMPID=006 REQUESTED BY JOB (MQ83BRK )                       
DUMP TITLE=MQ83BRK ,ABN=S0C4-00000004,C=M7500.600.BRKR        
followed by:
IEF196I IEF285I   DUMP.MVS1.MQ83BRK.D080924.T171755.S00005     CATALOGED 
IEF196I IEF285I   VOL SER NOS= PSSD01.                                   
IEA611I COMPLETE DUMP ON DUMP.MVS1.MQ83BRK.D080924.T171755.S00005 486    
DUMPID=005 REQUESTED BY JOB (MQ83BRK )                                   
FOR ASID (00BF)                                                          
INCIDENT TOKEN: PLEXS    MVS1     09/24/2008 16:18:15                    
ID = MQ83BRK ,ABN=S0C4-00000004    
This shows the location of the dump dataset.

If you are still unable to resolve the problem, send the CEEDUMP file and dump dataset with joblogs and syslogs to your IBM Support Center for analysis.

If you do not have a user-defined extension and the integration node abends, you need to send the trace file to your IBM Support Center for analysis.