Topic
  • 1 reply
  • Latest Post - ‏2013-08-02T17:34:02Z by markevans
Riyazkha
Riyazkha
1 Post

Pinned topic Invocation exception

‏2013-08-01T14:13:20Z |

We are facing below issue in IMS online screen

IBM Rational COBOL Runtime                                                   
                                                                             
ELA00105I Error occurred at terminal IN3921FS, date 08/01/13, time 15:01:49,
          user IN3921F                                                       
ELA00093I An error occurred in program CFLS3AP, function CFLZZS-SQL-ERROR    
ELA09974P Unhandled exception occurred. EGL line: 005994                     
ELA09973I Condition code: 9996                                               
ELA09956P Invocation exception                                               
ELA00001I An error occurred in program CFLS3AP, function CFLZZS-SQL-ERROR An
          error occurred in program CFLS3AP                                  
ELA00001I on statement number 5994 Call to CFLS5AP was not successful        
IBM Rational COBOL Runtime                   

 

Function CFLZZS_SQL_ERROR()
  CFLZZW_DBRM_PARMS.ZSQL_CODE = sysVar.sqlData.sqlcode;
  ;
  /* ************************************/
  /* * If EZESQCOD < 0 then SQL-error. **/
  /* ************************************/
  ;
  if (sysVar.sqlData.sqlcode == 0 /* No SQL-error*/
   || sysVar.sqlData.sqlcode == 100)
    return;
  end
  ;
  /* *****************************************/
  /* * Check if SQL-code is to be accepted. **/
  /* *****************************************/
  ;
  X = 1;
  ;
  while (X <= 10) /* Check if SQL-code is accepted*/
    if (sysVar.sqlData.sqlcode == CFLZZW_DBRM_PARMS.ZACCEPTED_SQL_CODE[X])
      return;
    end
    X = X + 1;
  end
  ;
  CFLZZW_COMMON_WORK.ZSTATUS = "E"; /* Error-marking*/
  ;
  if (sysVar.sqlData.sqlcode == -530 /* Ref. integrity*/
   || sysVar.sqlData.sqlcode == -531
   || sysVar.sqlData.sqlcode == -532
   || sysVar.sqlData.sqlcode == -533)
    CFLZZW_DBRM_PARMS.ZRETURN_CODE = "08"; /* Return code*/
  else
    CFLZZW_DBRM_PARMS.ZRETURN_CODE = "12"; /* Return code*/
  end
  ;
  /* ******************************/
  /* * Move SQLCA data from SQL. **/
  /* ******************************/
  ;
  CFLZZW_DBRM_PARMS.ZSQLCA_HEX = sysVar.sqlData.sqlca;
  ;
  /* ************************************************/
  /* * Rollback in order to remove changes to DB2. **/
  /* ************************************************/
  ;
  VGVar.handleSysLibraryErrors = 1;
  sysLib.rollback();
  ;
  /* ****************************************/
  /* * Call SQL error logging application. **/
  /* ****************************************/
  ;
  call "CFLS5AP" (CFLZZW_DBRM_PARMS) {isNoRefresh = yes};
  ;
  /* ***************************************/
  /* * Commit of insert to SQL error log. **/
  /* ***************************************/
  ;
  VGVar.handleSysLibraryErrors = 1;
  sysLib.commit();
end // end CFLZZS_SQL_ERROR                             

Attachments

Updated on 2013-08-01T15:44:31Z at 2013-08-01T15:44:31Z by Riyazkha
  • markevans
    markevans
    2843 Posts

    Re: Invocation exception

    ‏2013-08-02T17:34:02Z  

    Hi,

    the most common reason for this error is that it cannot find the load module for CFLS5AP.   Are you sure it is there? 

    Is the call generated as a static call or a dynamic COBOL Call?  That could matter especially if the link failed for some reason on a static call.

    After that, you would have to see if it actually gets into CFLS5AP but then fails for some reason.

    My suggestion would be to generated both programs (CFL3SAP and CFLS5AP) with statementTrace=yes and look at the output from the COBOL DISPLAY statements generated.

    statementTrace=YES will produce a COBOL DISPLAY statement for each EGL statement as well as Entry/Exit to each function and specific info on the SQLCode returned.

    So, with this you can tell the flow through the two programs.