2016-06-01 2 views
1

JavaコードでPL/SQLストアド・プロシージャをコールしています。パッケージが結果を返すのに非常に時間がかかることがあります。 PL/SQLコールから出てJavaにログを書き込むことは可能ですか?PL/SQLプロシージャでのロング・アクティブ・セッション

Javaコード以下を参照してください:

long startTime = 0L; 
long endTime = 0L; 
startTime = System.currentTimeMillis(); 
logger.info("Starting Time PKGSM2_TOOLS Alerts Package  ------->"+startTime); 
CallableStatement statement= con.getConnection().prepareCall("{call PKGSM2_CONTROL_CHART.PROC_INDICATORCHART_ECHARANGE(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}"); 
statement.executeQuery(); 
endTime = System.currentTimeMillis(); 
logger.info("Ending Time PKGSM2_TOOLS Alerts Package ------->"+endTime); 
logger.info("Total Package Execution Time Duration of Alerts Package ------->"+(endTime - startTime)+"ms"); 

を上記のコードでは、PL/SQLパッケージは、より多くの時間がかかり、要求がパッケージ内にある場合。パッケージコールに2分以上かかる場合は、コールを終了することはできますか?

また、PL/SQLストアド・プロシージャ内のロング・アクティブ・セッションの理由は何ですか?あなたの最終目標は、DBドライバを介して、ストアドプロシージャのプロセスをキャンセル?早まっ近いDBセッション/プロセスまたはJavaプロセスに従って、または両方のプロセスであり、どのような

あなたはUTLが

Use UTL_FILE.PUT_LINEファイル使用することができます

+0

DBに依存していますので、あなたのDBのソフトウェアを指定してください。また、あなたのシステムの詳細だけでなく、あなたの手続きの詳細も誰かが分かっていなければ、**ロングアクティブセッション**の理由に答えるのは簡単ではありません。 –

+0

PL/SQLプロシージャから結果が得られない場合は、特定の時間(例:2分)後に、パッケージ呼び出しでエラーが発生したことをロガーに書き込んでください。私はjavaからエラーログを書き込む必要があります。ここでタイマーを計算するには2分以上かかりますか? – Varun

+0

最初の質問に対する解決策をご提案ください。 – Varun

答えて

0

how to do file append in pl/sql

CREATE OR REPLACE PROCEDURE SHAREFLE IS 
    v_MyFileHandle UTL_FILE.FILE_TYPE; 
    BEGIN 
     v_MyFileHandle := UTL_FILE.FOPEN('C:\','HELLO.TXT','a'); 
     UTL_FILE.PUT_LINE(v_MyFileHandle, 'Hello Again for the Second Time! ' || TO_CHAR(SYSDATE,'MM-DD-YY HH:MI:SS AM')); 
     UTL_FILE.FCLOSE(v_MyFileHandle); 
EXCEPTION 
     WHEN OTHERS THEN 
      DBMS_OUTPUT.PUT_LINE 
       ('ERROR ' || TO_CHAR(SQLCODE) || SQLERRM); 
      NULL; 
END; 
関連する問題