2009-04-02 29 views
1

現在、バッチジョブはJavaで複数の(時には大きな)ファイルを処理しています。 これらのジョブは実行に時間がかかることがあります。これらのファイルはJVMで直接実行され、ループ内で実行されるJavaスレッドが使用されます。 (ファイルを処理してしばらく待つ)。Bea Weblogicでのバッチ処理の実行

私が働く会社は、これらのジョブをWeblogicアプリケーションサーバーで実行したいと考えています。それが優れているわけではなく、それが同社の標準プラットフォームだからです。

BEA weblogicはすべてのスレッドを監視し、デフォルトでは10分以上実行されるスレッドはSTUCKスレッドであるため、サーバーがFAILED状態になる可能性があります。

これをBEA Weblogicで行うベストプラクティスは何ですか?

+0

weblogicでQuartzを使用しました。これはうまく動作し、STUCKスレッドを与えません。 – Edwin

答えて

3

BEA Weblogicは、特定の時間に対して要求スレッドのみを監視します。要求処理コードによって生成されたスレッドの場合、それはありません。 Quartz(OpenSymphony製)スケジューラを使用してWeblogicのジョブをスケジューリングしました。以前は3-4時間かかることがありました。

1

Weblogic Serverは、より長いスレッド実行時間をサポートし、長時間の作業に最適化されたWorkManagerを提供します(通常、古いThreadPoolsのフレームワークです)。 WorkManagerの場合、スレッドが滞留している可能性が高いとみなされるまでの時間MaxThreadStuckTimeを定義できます。