2011-06-29 9 views
1

Weblogic 10.3.3で実行されているこのWebアプリケーション(Struts 1.xを使用)にファイルを読み込んでデータをデータベース(Oracle 11g DB)に入力しました。また、このWebアプリケーションを通じて、データベース内のストアドプロシージャを実行できます。この問題は、ストアドプロシージャを少し変更した後で、実行を完了するまでにかなりの時間(25〜40分)を要します。Webページ経由で長いストアドプロシージャを実行

ストアドプロシージャを実行するページがロードされ、ストアドプロシージャが終了しても(セッションブラウザでチェックされていても)ページはロード状態になり、時折タイムアウトエラーが表示されます。

完了までに時間がかかる(60分)ストアドプロシージャを実行する方法はありますか?アプリケーションコードやWeblogicの設定を変更する必要がありますか?

ありがとうございます。

答えて

1

これまでユーザーを待たせることは決してありません。私は最後のものを扱った場合:

  1. クライアント(ユーザー/ブラウザ)サーバに伝え
  2. Serverが処理を開始するスレッドを生成する「の手順を開始します」。
  3. サーバはクライアント(ユーザ/ブラウザ)に「私は今完了しました。後で戻ってきてください」と答えています。
  4. サーバは手順を完了します。
  5. サーバーは、手順が完了したことをユーザーにメールします。
  6. セカンダリスレッドは終了します。
  7. サーバーはロビンの亡霊の味方を食べ、多くの喜びがあります。
+0

さて、サーバーは決してサーフィン・ロビンの宮廷を食べなかったかもしれませんが、私は彼らがしたふりをしました。 – cwallenpoole

+0

Oracleでプロシージャを非同期で実行する簡単な方法は、DBMS_JOBまたはDBMS_SCHEDULERを使用することです。 –

関連する問題