数値計算のアプリケーションは、従来の Java 2 Platform Enterprise Edition (J2EE) の要求/応答パラダイムに適切に対応できない、計算主体の作業を実行するアプリケーションです。
ジョブ概念は。すべての長時間実行アプリケーションで共有され、別の場所で説明されます。 以下のセクションでは、非同期 Bean プログラミング・モデルへの拡張に関する追加情報を示します。
数値計算のジョブ・ステップ
すべての長時間実行ジョブと同様、数値計算のジョブは複数のジョブ・ステップに分割されます。 数値計算のジョブの場合、それぞれのジョブ・ステップは com.ibm.websphere.ci.CIWork インターフェースを実装するクラスのインスタンスによって表されます。 CIWork インターフェースは、WebSphere 非同期 Bean プログラミング・モデルおよび JSR 237 から commonj.Work 作業インターフェースを拡張します。 これらの拡張機能は 2 つのメソッドからなり、ジョブで指定されたジョブ・ステップ特定のプロパティーを CIWork オブジェクトに受け渡す方法を提供します。
詳しくは API 資料を参照してください。
非同期 Bean について学習するには、WebSphere Application Server InfoCenter の 『非同期 Bean の使用』セクションを参照してください。
コントローラー Bean
<session id="ここに適切な名前を提供します"> <ejb-name>CIController</ejb-name> <home>com.ibm.ws.ci.CIControllerHome</home> <remote>com.ibm.ws.ci.CIController</remote> <ejb-class>com.ibm.ws.ci.CIControllerBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Bean</transaction-type> <resource-ref id="WorkManager_ResourceRef"> <description> ジョブの実行に使用される WorkManager。 <res-ref-name>wm/CIWorkManager</res-ref-name> <res-type>commonj.work.WorkManager</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope>
数値計算アプリケーションのパッケージ化
数値計算のアプリケーションのためのロジック (いくつかの CIWork オブジェクトと、それらの CIWork オブジェクトをサポートするために必要なクラス) は、J2EE アプリケーションの Enterprise Archive (EAR) ファイルのエンタープライズ Bean モジュールにパッケージされます。 エンタープライズ Bean モジュールのデプロイメント記述子は、上述のステートレス・セッション Bean の定義を含まなければならないことに注意してください。 アプリケーション自体が他のエンタープライズ Bean またはリソースを使用する場合、 これらの Bean の定義およびリソースもまたデプロイメント記述子に出力される可能性があります。 IBM Rational Application Developer のような J2EE 開発ツールは、エンタープライズ Bean モジュールおよび非同期 Bean を含む J2EE アプリケーションを構成するときに 使用される同様の方法で、数値計算アプリケーションの開発、パッケージを行うことができます。
数値計算アプリケーションのライフ・サイクル
run() メソッドが戻る前にジョブが取り消されると、CIControllerBean は別のスレッドで CIWork オブジェクトの release() メソッドを呼び出します。 run() メソッドをただちに戻させるロジックを release() メソッドに配置することは、長時間実行アプリケーションの開発者の担当範囲となります。 run() メソッドが戻るまで、ジョブはキャンセル保留 状態を維持します。
ジョブがキャンセルされず、run() メソッドが例外をスローせずに返された場合、 ジョブは正常に完了したと思われます。 run() メソッドが例外をスローした場合、ジョブは実行の失敗 とマークされます。 run() メソッドが (正常に、または例外をスローして) 戻った場合、 CIWork オブジェクトへの呼び出しはこれ以上行われず、またそれへの参照すべてが除去されます。
Related concepts
長時間実行アプリケーションの開発