3

Spring Batch を Java EE サーバー (WebLogic など) 内で、たとえば Web アプリケーションとして実行できますか? Spring Batch が Java EE サーバー内でより多くのスレッドを作成することに問題はありますか (マルチスレッド ステップおよび並列ステップ用)? これは Java EE 仕様に反するフレームワークによるスレッドの作成ですか?

私は大丈夫だと思っており、次のリンクを読んだ後、人々はこれを行っています

http://static.springsource.org/spring-batch/reference/html-single/index.html#runningJobsFromWebContainer

助けてください。

4

3 に答える 3

1

これは古い質問ですが、やはり回答を追加します。
はい、問題があるかもしれません。WebSphere サーバーでこのような問題に遭遇しました。
ドキュメントによると: http://www-01.ibm.com/support/docview.wss?uid=swg21246676

「newThread()」などの Java™ 呼び出しを使用して新しいスレッドを生成することは、J2EE 仕様に従ってサポートされていません。この生成されたスレッドは、J2EE コンテキストを継承しません。代わりに、非同期 Bean または Commonj WorkManager スレッドを使用することをお勧めします。これらのスレッドは適切な J2EE コンテキストを持ち、間接的な JNDI ルックアップをサポートします。

Spring バッチは を使用して独自のスレッドを作成しますがnew Thread、これらのスレッドは J2EE コンテキストを継承しません。
私の特定のケースでは、Spring Batch ジョブの 1 つが https 経由でいくつかの REST サービスを消費しました。Spring Batch によって生成されたスレッドは、WebSphere サーバーにインストールされた https 証明書を認識せず、証明書のエラーが発生することが判明しました。

于 2018-08-11T12:11:09.513 に答える
0

これは一般的な方法です。本 Spring Batch In Action Chapter 4.4 では、Web コンテナーからバッチ ジョブを起動する、まったく同じシナリオについて説明しています。バッチ ジョブは、N スレッドのスレッド プール内で実行する必要があります。プール内のスレッド数は、パフォーマンス負荷テストのスループット結果によって決定する必要があります。

于 2013-02-05T07:00:57.610 に答える