WebSphere Extended Deployment Compute Grid, Version 6.1.1
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows


POJO プログラミング・モデル

WebSphere Extended Deployment バージョン 6.1 のバッチ・アプリケーションは、 単純な Plain Old Java Object (POJO) として実装され、 デプロイメント用に Enterprise JavaBeans (EJB) モジュールとして Enterprise Archive (EAR) ファイルの中にパッケージ化されています。POJO ベースのバッチ・アプリケーション の作成は、バッチ・アプリケーションの作成において推奨される方法です。

以下のセクションで、バッチ・アプリケーションのコンポーネントについて説明します。

バッチ・ジョブ・ステップ

バッチ・アプリケーションは、 1 つ以上のバッチ・ステップで構成されます。各バッチ・ステップは POJO であり、 インターフェース com.ibm.websphere.batch.BatchJobStepInterface を実装しています。このインターフェースの実装により、 バッチ・アプリケーションの実行のためにバッチ・ランタイムが呼び出すバッチ・ステップのビジネス・ロジックが提供されます。

バッチ・アプリケーションの パッケージ化時に、各バッチ・ステップは CMP エンティティー Bean として宣言され、 POJO のビジネス・ロジックは、EJB デプロイメント記述子の環境エントリーを使用してこの Bean に関連付けられます。CMP エンティティー Bean は、 バッチ・ジョブ・ステップ・ラッパーとして機能します。その実装は、WebSphere Extended Deployment ランタイムによって提供されます。したがって、この Bean は EJB デプロイメント記述子で宣言され、 実際にはパッケージ化はされません。単一のバッチ・アプリケーションで複数のステップが定義されます。

バッチ・コントローラー Bean

バッチ・アプリケーションには、 ステートレス・セッション Bean も含まれています。この Bean は、 ジョブ・ステップ・コントローラーとして機能する WebSphere Extended Deployment ランタイムによって提供されます。CMP エンティティー Bean と同様に、 コントローラー・ステートレス・セッション Bean は、 アプリケーション・デプロイメント記述子で宣言されます。コントローラー Bean は、バッチ・アプリケーションごとに 1 回宣言します。

バッチ・データ・ストリーム

各バッチ・ステップでは、データの入出力用にゼロ以上の バッチ・データ・ストリームを使用することができます。バッチ・データ・ストリームとは、 インターフェース com.ibm.websphere.batch.BatchDataStream を実装する POJO のことです。

チェックポイント・アルゴリズム

チェックポイント・アルゴリズムは、 バッチ・ランタイムが、バッチ・ステップが呼び出されるグローバル・トランザクションをコミットする頻度を 決定する際に役立ちます。チェックポイント・アルゴリズムは、 インターフェース com.ibm.wsspi.batch.CheckpointAlgorithm を実装することによって POJO として構築されます。バッチ・ランタイムにも、 すぐに使用できる時間ベースおよび記録ベースのチェックポイント・アルゴリズムが用意されています。

結果アルゴリズム

バッチ・プログラミング・モデルの オプションの機能である結果アルゴリズムは、バッチ・ジョブの戻りコードを操作する場合に 使用されます。バッチ・ランタイムは、すべてのジョブ・ステップの中で 最大数値の戻りコードを返す単純な結果アルゴリズムを提供します。

バッチ・アプリケーションのコンポーネント

表 1. バッチ・アプリケーション開発者によって提供される バッチ・アプリケーションのコンポーネント
コンポーネント タイプ 実装 プロバイダー
バッチ・ジョブ・ステップ POJO com.ibm.websphere.BatchJobStepInterface バッチ・アプリケーション
バッチ・データ・ストリーム POJO com.ibm.websphere.batchDataStream バッチ・アプリケーション
チェックポイント・アルゴリズム POJO com.ibm.wsspi.batchCheckpointAlgorithm バッチ・アプリケーション (実行時に提供される実装を使用可能)
結果アルゴリズム POJO com.ibm.wsspi.batchResultsAlgorithm バッチ・アプリケーション (実行時に提供される実装を使用可能)
表 2. バッチ・ランタイムによって提供されるバッチ・アプリケーションのコンポーネント
コンポーネント タイプ 実装 プロバイダー
バッチ・ジョブ・コントローラー セッション Bean   バッチ・ランタイム
バッチ・ジョブ・ステップ・ラッパー CMP エンティティー Bean   バッチ・ランタイム
チェックポイント・アルゴリズム POJO   バッチ・ランタイム (アプリケーションは独自のものを提供可能)
結果アルゴリズム POJO   バッチ・ランタイム (アプリケーションは独自のものを提供可能)

EJB デプロイメント記述子:

<ejb-jar id="ejb-jar_ID">
   <display-name>POJOSampleEJBs</display-name>
   <enterprise-beans>
      <!--Batch Job Controller Bean -->
      <session id="POJOJob">
         <ejb-name>POJOJob</ejb-name>
         <home>com.ibm.ws.batch.BatchJobControllerHome</home>
         <remote>com.ibm.ws.batch.BatchJobController</remote>
         <ejb-class>com.ibm.ws.batch.BatchJobControllerBean</ejb-class>
         <session-type>Stateless</session-type>
         <transaction-type>Bean</transaction-type>
         <ejb-local-ref id="EJBLocalRef_1168709876999">
            <ejb-ref-name>ejb/POJOStep1</ejb-ref-name>
            <ejb-ref-type>Entity</ejb-ref-type>
            <local-home>com.ibm.websphere.batch.BatchJobStepLocalHomeInterface </local-home>
             <local>com.ibm.websphere.batch.BatchJobStepLocalInterface</local>
            <ejb-link>POJOStep1</ejb-link>
         					</ejb-local-ref>
         <ejb-local-ref id="EJBLocalRef_1127247535990">
            <ejb-ref-name>ejb/POJOStep2</ejb-ref-name>
            <ejb-ref-type>Entity</ejb-ref-type>
            <local-home>com.ibm.websphere.batch.BatchJobStepLocalHomeInterface</local-home>
            <local>com.ibm.websphere.batch.BatchJobStepLocalInterface</local>
           <ejb-link>POJOStep2</ejb-link>
         					</ejb-local-ref>
         <resource-ref id="ResourceRef_1168711637701">
            <!-- default Work Manager for Batch Jobs -->
            <res-ref-name>wm/BatchWorkManager</res-ref-name>
            <res-type>commonj.work.WorkManager</res-type>
            <res-auth>Container</res-auth>
            <res-sharing-scope>Shareable</res-sharing-scope>
         </resource-ref>
      	 </session>

      <!-- Batch Job Step # 1 -->
      <entity id="POJOStep1">
         <ejb-name>POJOStep1</ejb-name>
         <local-home>com.ibm.websphere.batch.BatchJobStepLocalHomeInterface </local-home>
         <local>com.ibm.websphere.batch.BatchJobStepLocalInterface</local>
         <!-- Batch Job Step Wrapper -->
         <ejb-class>com.ibm.ws.batch.DefaultBatchJobStepBean</ejb-class>
         <persistence-type>Container</persistence-type>
         <prim-key-class>com.ibm.websphere.batch.BatchJobStepKey </prim-key-class>
         <reentrant>False</reentrant>
         <cmp-version>2.x</cmp-version>
         <abstract-schema-name>POJOStep1</abstract-schema-name>
         <cmp-field id="CMPAttribute_1168709093522">
            <field-name>jobID</field-name>
         </cmp-field>
         <cmp-field id="CMPAttribute_1168709093542">
            <field-name>stepID</field-name>
         </cmp-field>
         <!-- Environment Entry associating Step POJO to the Wrapper -->
         <env-entry>
            <description>POJO class name for the batch step</description>
            <env-entry-name>POJOclass</env-entry-name>
            <env-entry-type>java.lang.String</env-entry-type>
            <!-- POJO Job Step implementation -->
            <env-entry-value>com.ibm.websphere.samples.POJOStep1</env-entry-value>
         			</env-entry>
      </entity>

      <!-- Batch Job Step # 2 -->
      <entity id="POJOStep2">
         <ejb-name>POJOStep2</ejb-name>
         <local-home>com.ibm.websphere.batch.BatchJobStepLocalHomeInterface </local-home>
         <local>com.ibm.websphere.batch.BatchJobStepLocalInterface</local>
         <!-- Batch Job Step Wrapper -->
         <ejb-class>com.ibm.ws.batch.DefaultBatchJobStepBean</ejb-class>
         <persistence-type>Container</persistence-type>
         <prim-key-class>com.ibm.websphere.batch.BatchJobStepKey</prim-key-class>
         <reentrant>False</reentrant>
         <cmp-version>2.x</cmp-version>
         <abstract-schema-name>POJOStep2</abstract-schema-name>
         <cmp-field id="CMPAttribute_1127248451496">
            <field-name>jobID</field-name>
         </cmp-field>
         <cmp-field id="CMPAttribute_1127248451497">
            <field-name>stepID</field-name>
         </cmp-field>
         <!-- Environment Entry associating Step POJO to the Wrapper -->
         <env-entry>
            <description>POJO class name for the batch step</description>
            <env-entry-name>POJOclass</env-entry-name>
            <env-entry-type>java.lang.String</env-entry-type>
            <!-- POJO Job Step implementation -->
            <env-entry-value>com.ibm.websphere.samples.POJOStep2</env-entry-value>
         			</env-entry>
      </entity>
   </enterprise-beans>

   <assembly-descriptor id="AssemblyDescriptor_1168711087550">
      <container-transaction>
         <method>
            <ejb-name>POJOStep1</ejb-name>
            <method-name>*</method-name>
         </method>
         <method>
            <ejb-name>POJOStep2</ejb-name>
            <method-name>*</method-name>
         </method>
         <!-- TX REQUIRED-->
         <trans-attribute>Required</trans-attribute>
      </container-transaction>
   </assembly-descriptor>
</ejb-jar>



関連概念
バッチ・プログラミング・モデル
関連タスク
単純なバッチ・アプリケーションの開発
POJO を使用したバッチ・アプリケーションの構築
概念のトピック    

ご利用条件 | フィードバック

最終更新: 2009/09/17 16時38分56秒EDT
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r1m1/index.jsp?topic=/com.ibm.websphere.gridmgr.doc/info/scheduler/ccgpojomodel.html