PL / SQL程序卡住

时间:2017-09-14 07:51:37

标签: oracle plsql

我有以下情况:

Java servlet调用PL / SQL过程并等待返回值。 PL / SQL过程调用其他PL / SQL过程,这些过程执行一系列更新,插入和提交。当一切都完成后,初始PL / SQL过程使用pragma写入日志,如果成功则返回1.

问题在于,在一个环境中一切正常,在另一个环境中,PL / SQL过程仍然存在(两个环境中的代码和数据相同)。

PL / SQL程序ex:

PROCEDURE Export_1511_PDH_Physic ( o_ErrorCode OUT NUMBER,
                                   o_ErrorText OUT VARCHAR2,
                                   o_Resultat  OUT NUMBER) is

  GlobalExportID NUMBER;
BEGIN
     ASYNCLOG ('Export_1511_PDH_Physic', 'Started');--Pragma writing logs

     GlobalExportID :=0;
     o_Resultat := 0;
     select nvl(max(exportid),0) into GlobalExportID from async.MaxNodeList;

     GlobalExportID := GlobalExportID + 1;
     upd_JRLExport('1511Max Export', GlobalExportID, 0);--Pragma writing logs

     pkggato.MaxIRM_DoExport(GlobalExportID); ---more pl/sql procedures(update, insert...)

   o_Resultat := o_Resultat+1;

下面打印好的永远。

   pkgdebug.writelog('o_ErrorCode - ' || o_ErrorCode,'Info');
   pkgdebug.writelog('o_ErrorTex - ' || o_ErrorText,'Info');
   pkgdebug.writelog('o_Resultat - ' || o_Resultat,'Info');

以下日志打印正常。

   ASYNCLOG ('Export_1511_PDH_Physic', 'Finished'); --Pragma writing logs
   upd_JRLExport('1511Max Export', GlobalExportID, 1); --Pragma writing logs
END; 

如果执行数据库重启,一切运行正常。 关于如何调试这个的任何想法?

PROCEDURE upd_JRLExport(pis_export_type   ASYNC_JRLEXPORT.EXPORTTYPE%TYPE,
                           pin_export_no     ASYNC_JRLEXPORT.NO_EXPORT%TYPE,
                           pin_start_end_flg NUMBER, --0: Start / 1: End
                           pin_status        ASYNC_JRLEXPORT.STATUS%TYPE DEFAULT NULL)
   IS
      PRAGMA AUTONOMOUS_TRANSACTION;
      ld_now   DATE;
   BEGIN
      SELECT SYSDATE
      INTO ld_now
      FROM DUAL;

      UPDATE ASYNC_JRLEXPORT
      SET START_DATE = DECODE(pin_start_end_flg, 0, ld_now, START_DATE),
         END_DATE = DECODE(pin_start_end_flg, 1, ld_now, END_DATE),
         NO_EXPORT = NVL(pin_export_no, NO_EXPORT),
         STATUS = NVL(pin_status, STATUS)
      WHERE EXPORTTYPE = pis_export_type;

      COMMIT;
END upd_JRLExport;

谢谢, 克特林。

0 个答案:

没有答案