OSGi バッチ・アプリケーションのデプロイ
既存のバッチ・アプリケーションを OSGi アプリケーションとしてパッケージできます。その後、そのパッケージをデプロイして、バッチ成果物をサービスとして公開し、バッチ・コンテナーに対してそれらの成果物を可視にできます。
このタスクについて
OSGi バッチ・アプリケーションをパッケージし、Blueprint xml ファイルを変更してバッチ成果物をサービスとして記述し、OSGi バッチ・アプリケーションを EBA (Enterprise Bundle Archive) としてエクスポートします。次に、xJCL を作成します。最後に、OSGi バッチ・アプリケーションをデプロイします。
手順
- OSGi バッチ・アプリケーションをパッケージ化します。
OSGi バッチ・アプリケーションを EBA としてパッケージします。この EBA には、最小限、Blueprint バンドルであるバッチ・バンドルが含まれます。API バンドルおよびディスパッチャー・バンドルは、内部バンドル・リポジトリーに一度インストールされます。
クライアント・バンドルの作成に関するトピックを参照し、手順に従って OSGi アプリケーションをパッケージしてください。
- Blueprint xml を作成します。
ジョブ・ステップおよびバッチ・データ・ストリームをサービスとして宣言して、スケジューラーがそれらを呼び出せるようにする必要があります。対象の OSGi バッチ・アプリケーションがチェックポイント・ポリシー・アルゴリズムまたは結果アルゴリズムを実装している場合、アプリケーションが実装している各アルゴリズムもサービスとして宣言する必要があります。
- 各ジョブ・ステップをそれぞれ 1 つの Blueprint サービスとして宣言します。
- interface 属性を設定します。
- ステップが数値計算ステップの場合、この属性を com.ibm.websphere.ci.CIWork に設定します。
- ステップがトランザクション・バッチ・ステップの場合、この属性を com.ibm.websphere.batch.BatchJobStepInterface に設定します。
- ref 属性を、ステップ Bean を宣言する Bean ID に設定します。
- xjcl:classname キーと、ステップを実装する Java™ クラスを表す値を使用して、プロパティーを宣言します。
- ステップを実装する Java クラスの Bean を宣言します。
- scope 属性を prototype に設定します。
数値計算ステップの例:
<bean id="IVTStep1" class="com.ibm.websphere.batch.samples.tests.steps.GenerateDataStep" scope="prototype"/> <service ref="IVTStep1" interface="com.ibm.websphere.ci.CIWork" id="step1"> <service-properties> <entry key="xjcl:classname" value="com.ibm.websphere.batch.samples.tests.steps.GenerateDataStep"/> </service-properties> </service>
トランザクション・バッチ・ステップの例:
<bean id="EchoStep2" class="com.ibm.websphere.batch.samples.tests.steps.TestBatchJobStep" scope="prototype"/> <service ref="EchoStep2" interface="com.ibm.websphere.batch.BatchJobStepInterface" id="echostep1"> <service-properties> <entry key="xjcl:classname" value="com.ibm.websphere.batch.samples.tests.steps.TestBatchJobStep"/> </service-properties> </service>
- interface 属性を設定します。
- 各バッチ・データ・ストリームをそれぞれ 1 つの Blueprint サービスとして宣言します。
- interface 属性を com.ibm.websphere.batch.BatchDataStream に設定します。
- ref 属性を、バッチ・データ・ストリーム Bean を宣言する Bean ID に設定します。
- xjcl:classname キーと、バッチ・データ・ストリームを実装する Java クラスを表す値を使用して、プロパティーを宣言します。
- バッチ・データ・ストリームを実装する Java クラスの Bean を宣言します。
- scope 属性を prototype に設定します。
バッチ・データ・ストリームの例:
<bean id="output" class="com.ibm.websphere.batch.samples.tests.bds.TestOutputBatchDataStream" scope="prototype"/> <service ref="output" interface="com.ibm.websphere.batch.BatchDataStream" id="out1"> <service-properties> <entry key="xjcl:impl-class" value="com.ibm.websphere.batch.samples.tests.bds.TestOutputBatchDataStream"/> </service-properties> </service>
- チェックポイント・ポリシー・アルゴリズムを Blueprint サービスとして宣言します。
対象の OSGi バッチ・アプリケーションがチェックポイント・ポリシー・アルゴリズムを実装している場合、そのアルゴリズムを Blueprint サービスとして宣言します。それ以外の場合は、このステップをスキップすることができます。
- interface 属性を com.ibm.wsspi.batch.CheckpointPolicyAlgorithm に設定します。
- ref 属性を、チェックポイント Bean を宣言する Bean ID に設定します。
- xjcl:classname キーと、チェックポイント・ポリシー・アルゴリズムを実装する Java クラスを表す値を使用して、プロパティーを宣言します。
- チェックポイント・ポリシー・アルゴリズムを実装する Java クラスの Bean を宣言します。
- scope 属性を prototype に設定します。
チェックポイント・ポリシー・アルゴリズムの例:
<bean id="chkpt" class="com.ibm.websphere.batch.samples.MyCheckpointAlgorithm" scope="prototype"/> <service ref="chkpt" interface="com.ibm.wsspi.batch.CheckpointPolicyAlgorithm" id="ck1"> <service-properties> <entry key="xjcl:impl-class" value="com.ibm.websphere.batch.samples.MyCheckpointAlgorithm"/> </service-properties> </service>
- 結果アルゴリズムを Blueprint サービスとして宣言します。
対象の OSGi バッチ・アプリケーションが結果アルゴリズムを実装している場合、そのアルゴリズムを Blueprint サービスとして宣言します。それ以外の場合は、このステップをスキップすることができます。
- interface 属性を com.ibm.wsspi.batch.ResultsAlgorithm に設定します。
- ref 属性を、結果アルゴリズム Bean を宣言する Bean ID に設定します。
- xjcl:classname キーと、結果アルゴリズムを実装する Java クラスを表す値を使用して、プロパティーを宣言します。
- 結果アルゴリズムを実装する Java クラスの Bean を宣言します。
- scope 属性を prototype に設定します。
結果アルゴリズムの例:
<bean id="myres" class="com.ibm.websphere.batch.samples.MyResultsAlgorithm" scope="prototype"/> <service ref="myres" interface="com.ibm.wsspi.batch.ResultsAlgorithm" id="r1"> <service-properties> <entry key="xjcl:impl-class" value="com.ibm.websphere.batch.samples.MyResultsAlgorithm"/> </service-properties> </service>
- 各ジョブ・ステップをそれぞれ 1 つの Blueprint サービスとして宣言します。
- OSGi バッチ・アプリケーションを EBA としてエクスポートします。
- xJCL を作成します。 他のバッチ・アプリケーションの場合と同じように xJCL を作成しますが、以下の相違点があります。
- ジョブ・ステップの application-name 属性を、デプロイされたアセット名にします。デプロイされたアセットは 1 つの構成単位です。
- ステップの classname サブエレメントを、ステップ・サービスの xjcl:classname プロパティーと一致させます。以下の例では、この手順で前に示したトランザクション・バッチ・ステップ例から、com.ibm.websphere.batch.samples.tests.steps.TestBatchJobStep の xjcl:classname プロパティーを使用しています。
<step id=”step1”> <classname> com.ibm.websphere.batch.samples.tests.steps.TestBatchJobStep</classname> </step>
- OSGi バッチ・アプリケーションをデプロイします。
ビジネス・レベル・アプリケーションとしての OSGi アプリケーションのデプロイに関するトピックを参照し、手順に従ってください。
タスクの結果
OSGi バッチ・アプリケーションをパッケージし、Blueprint xml を変更してバッチ成果物をサービスとして記述し、OSGi バッチ・アプリケーションを EBA (Enterprise Bundle Archive) としてエクスポートしました。次に、xJCL を作成しました。最後に、OSGi バッチ・アプリケーションをデプロイしました。
サブトピック
OSGi バッチ・アプリケーション
OSGi バッチ・アプリケーションとは、バッチ成果物をサービスとして公開するために OSGi アプリケーションとしてパッケージ化してデプロイすることができるバッチ・アプリケーションです。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tgrid_cgbatchosgi
ファイル名:tgrid_cgbatchosgi.html