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


POJO を使用したバッチ・アプリケーションの構築

このトピックでは、Plain Old Java Object (POJO) プログラミング・モデル を使用したバッチ・アプリケーションの構築およびパッケージに必要なステップについて説明します。

始める前に

POJO ベースのバッチ・アプリケーションの作成は、 バッチ・アプリケーションの作成において推奨される方法です。詳しくは、バッチ・プログラミング・モデル および POJO プログラミング・モデル を参照してください。

オプションとして、以下のスクリプトを使用して、以下の『Procedure』セクションにある ステップ 3 から 5 を置き換えることができます。

Java 仮想マシンのカスタム・プロパティー com.ibm.websphere.ejbcontainer.expandCMPCFJNDIName を設定します。 Java 仮想マシンのカスタム・プロパティー を参照してください。

WSBatchPackager.sh
                 -properties=<properties file name>
                 [-debug]

または

WSBatchPackager.sh
-appname=<application name>
		-jobsteps="{{<ejb name>, <jndi name>, <POJO step class> [, jar file, utility jars]}, ...}"
-jarfile=<jarfile containing POJO step classes>
-earfile=<output ear file name>
[-utilityjars=<semicolon separated utility jars>]
[-epjndiname=<endpoint/checkpoint datasource jndi name>]
		[-nonxadsjndiname=<non-xa datasource JNDI name for CursorHoldableJDBCReader>;<non XA datasource JNDI name 2>;...]
		[-debug]

または、以下のようにパッケージャーを呼び出すことができます。

  java -jar batchpackager.jar 
                 -properties=<properties file name>
                 [-debug]

または

  java -jar batchpackager.jar
                 -appname=<application name>
                 -jobsteps="{{<ejb name>, <jndi name>, <POJO step class> [, jar file, utility jars]}, ...}"
                 -jarfile=<jarfile containing POJO step classes>
                 -earfile=<output ear file name>
                 [-utilityjars=<semicolon separated utility jars>]
                 [-epjndiname=<endpoint/checkpoint datasource jndi name>]
                 [-nonxadsjndiname=<non-xa datasource JNDI name for CursorHoldableJDBCReader>;<non XA datasource JNDI name 2>;...]
                 [-debug]

プロシージャー

  1. バッチ・ジョブ・ステップを作成します。 インターフェース com.ibm.websphere.BatchJobStepInterface を実装する 新しい Java クラスを作成します。ビジネス・ロジックを実装します。

    ステップにちょうど 1 入力 1 出力ストリームがある場合、代わりに汎用バッチ・ステップ (GenericXDBatchStep) を使用することもできます。

  2. バッチ・データ・ストリームを作成します。 インターフェース com.ibm.websphere.batch.BatchDataStream を実装する 新しい Java クラスを作成します。バッチ・データ・ストリームは、jobID および stepID を指定して BatchDataStreamMgr を呼び出すことによって、ビジネス・ロジックから (つまり、 バッチ・ジョブ・ステップから) アクセスされます。JobID および stepID は、 鍵 BatchConstants.JOB_ID および BatchConstants.STEP_ID を使用して、 ステップ Bean プロパティー・リストから取得されます。BatchConstants.JOB_ID を com.ibm.websphere.batch.JobID にマップし、BatchConstants.STEP_ID を com.ibm.websphere.batch.StepID にマップします。あらかじめ BatchConstants クラスへのアクセス権限が必要です。
    バッチ・データ・ストリーム・フレームワークでは、ファイル、データベースなど、さまざまなタイプのデータ・ストリームを処理する、すぐに使用できるいくつかのパターンを提供しています。バッチ・データ・ストリーム・フレームワークを使用するには、次のようにします。
    • 操作するデータ・ストリームのタイプ (TextFile、ByteFile、JDBC、z/OS ストリーム) を確認します。
    • このストリームからデータを読み取るのか、あるいはストリームにデータを書き込むのかを確認します。
    • バッチ・データ・ストリームのフレームワークとパターン の表を参照し、データ・ストリーム・タイプと操作に一致するサポート・クラス列からクラスを選択します。例えば、テキスト・ファイルからデータを読み取る場合は、TextFileReader を選択します。
    • 前のステップで選択したサポート・クラスに対応するパターン名列にリストされているインターフェースを実装します。サポート・クラスは、ストリームおよびバッチ・プログラミング・モデルに関連するすべての記帳アクティビティーを処理し、実装クラスがストリーム処理ロジックに集中できるようにします。
    • xJCL にサポート・クラスと実装クラスを宣言します。
    • この手順をステップに必要な各データ・ストリームについて繰り返します。
    		<batch-data-streams>
       <bds>
    <logical-name>inputStream</logical-name>
     	<props>
     	    <prop name="PATTERN_IMPL_CLASS" value="MyBDSStreamImplementationClass"/>
                <prop name="file.encoding" value="8859_1"/>
                <prop name="FILENAME" value="${inputDataStream}" />
                <prop name="PROCESS_HEADER" value="true"/>
                <prop name="AppendJobIdToFileName" value="true"/>
            </props>
    <impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.FileByteReader</impl-class>
       </bds>
    注: PATTERN_IMPL_CLASS は、BDS フレームワーク・パターンのユーザーの実装を示し、impl-class プロパティーはサポート・クラスを示しています。
  3. バッチ・ジョブ・コントローラーを宣言します。
    1. ステートレス・セッション Bean をデプロイメント記述子に追加し、com.ibm.ws.batch.BatchJobControllerBean を Bean クラスとして指定することによって、WebSphere® Extended Deployment により提供される実装クラスをポイントします。バッチ・アプリケーションごとにこのアクションを 1 度のみ行います。
    2. リモート・ホーム・インターフェース・クラスには com.ibm.ws.batch.BatchJobControllerHome を、 リモート・インターフェース・クラスには com.ibm.ws.batch.BatchJobController を使用します。
  4. POJO バッチ・ステップに対してバッチ・ジョブ・ステップ・ラッパーを 宣言します。
    1. CMP エンティティー Bean をバッチ・ステップのラッパーとしてデプロイメント記述子に追加し、com.ibm.ws.batch.DefaultBatchJobStepBean を Bean クラスとして指定することによって、WebSphere XD により提供される実装クラスを ポイントします。このアクションをアプリケーションの各バッチ・ステップごとに 1 度行います。
    2. ローカル・ホーム・インターフェース・クラスには com.ibm.ws.batch.BatchJobStepLocalHomeInterface を、 ローカル・インターフェース・クラスには com.ibm.ws.batch.BatchJobStepLocalInterface を使用します。
    3. キー・クラスに com.ibm.websphere.batch.BatchJobStepKey を指定し、 java.lang.String タイプの 2 つの CMP 属性 jobID および stepID を追加します。
    4. EJB デプロイメント記述子の環境エントリーを定義して、POJO バッチ・ステップ実装を ラッパーに関連付けます。環境エントリー名に POJOclass を指定し、 環境エントリー値に POJO バッチ・ジョブ・ステップのクラス名を指定します。 環境エントリー・タイプに java.lang.String を使用します。
  5. EJB デプロイメント記述子を構成します。
    1. EJB リソース参照: 各バッチ・ステップの参照をバッチ・ジョブ・コントローラー Bean に追加します。
    2. 作業マネージャー: コントローラー Bean にタイプ commonj.work.WorkManager のデフォルトの作業マネージャー wm/BatchWorkManager への リソース参照を構成します。
    3. キャッシュ: ジョブ・ステップ・ラッパーでは、Bean キャッシュのアクティブ化を ONCE に、ロードを ACTIVATION に設定します。
    4. トランザクション: ジョブ・ステップがグローバル・トランザクションの 有効範囲内で確実に実行されるようにするために、トランザクション属性を REQUIRED に 設定します。

appname=testBatchApp
jarfile=c:¥¥websphere¥¥appserver¥¥temp¥¥pojoclasses.jar
earfile=TestBatchAppEAR

ejbname.1=POJOStep1
jndiname.1=ejb/POJOStep1
jobstepclass.1=com.ibm.ws.batch.sample.POJOStep1.class

ejbname.2=POJOStep2
jndiname.2=ejb/POJOStep2
jobstepclass.2=com.ibm.ws.batch.sample.POJOStep2.class



関連概念
POJO プログラミング・モデル
関連タスク
単純なバッチ・アプリケーションの開発
関連情報
Java 仮想マシンのカスタム・プロパティー
タスク・トピック    

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

最終更新: 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/tcgbuildbatch.html