OSGi バッチ・アプリケーションのデプロイ

既存のバッチ・アプリケーションを OSGi アプリケーションとしてパッケージできます。その後、そのパッケージをデプロイして、バッチ成果物をサービスとして公開し、バッチ・コンテナーに対してそれらの成果物を可視にできます。

このタスクについて

OSGi バッチ・アプリケーションをパッケージし、Blueprint xml ファイルを変更してバッチ成果物をサービスとして記述し、OSGi バッチ・アプリケーションを EBA (Enterprise Bundle Archive) としてエクスポートします。次に、xJCL を作成します。最後に、OSGi バッチ・アプリケーションをデプロイします。

手順

  1. OSGi バッチ・アプリケーションをパッケージ化します。

    OSGi バッチ・アプリケーションを EBA としてパッケージします。この EBA には、最小限、Blueprint バンドルであるバッチ・バンドルが含まれます。API バンドルおよびディスパッチャー・バンドルは、内部バンドル・リポジトリーに一度インストールされます。

    クライアント・バンドルの作成に関するトピックを参照し、手順に従って OSGi アプリケーションをパッケージしてください。

  2. Blueprint xml を作成します。

    ジョブ・ステップおよびバッチ・データ・ストリームをサービスとして宣言して、スケジューラーがそれらを呼び出せるようにする必要があります。対象の OSGi バッチ・アプリケーションがチェックポイント・ポリシー・アルゴリズムまたは結果アルゴリズムを実装している場合、アプリケーションが実装している各アルゴリズムもサービスとして宣言する必要があります。

    1. 各ジョブ・ステップをそれぞれ 1 つの Blueprint サービスとして宣言します。
      1. interface 属性を設定します。
        1. ステップが数値計算ステップの場合、この属性を com.ibm.websphere.ci.CIWork に設定します。
        2. ステップがトランザクション・バッチ・ステップの場合、この属性を com.ibm.websphere.batch.BatchJobStepInterface に設定します。
      2. ref 属性を、ステップ Bean を宣言する Bean ID に設定します。
      3. xjcl:classname キーと、ステップを実装する Java™ クラスを表す値を使用して、プロパティーを宣言します。
      4. ステップを実装する Java クラスの Bean を宣言します。
      5. 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>
    2. 各バッチ・データ・ストリームをそれぞれ 1 つの Blueprint サービスとして宣言します。
      1. interface 属性を com.ibm.websphere.batch.BatchDataStream に設定します。
      2. ref 属性を、バッチ・データ・ストリーム Bean を宣言する Bean ID に設定します。
      3. xjcl:classname キーと、バッチ・データ・ストリームを実装する Java クラスを表す値を使用して、プロパティーを宣言します。
      4. バッチ・データ・ストリームを実装する Java クラスの Bean を宣言します。
      5. 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>
    3. チェックポイント・ポリシー・アルゴリズムを Blueprint サービスとして宣言します。

      対象の OSGi バッチ・アプリケーションがチェックポイント・ポリシー・アルゴリズムを実装している場合、そのアルゴリズムを Blueprint サービスとして宣言します。それ以外の場合は、このステップをスキップすることができます。

      1. interface 属性を com.ibm.wsspi.batch.CheckpointPolicyAlgorithm に設定します。
      2. ref 属性を、チェックポイント Bean を宣言する Bean ID に設定します。
      3. xjcl:classname キーと、チェックポイント・ポリシー・アルゴリズムを実装する Java クラスを表す値を使用して、プロパティーを宣言します。
      4. チェックポイント・ポリシー・アルゴリズムを実装する Java クラスの Bean を宣言します。
      5. 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>
    4. 結果アルゴリズムを Blueprint サービスとして宣言します。

      対象の OSGi バッチ・アプリケーションが結果アルゴリズムを実装している場合、そのアルゴリズムを Blueprint サービスとして宣言します。それ以外の場合は、このステップをスキップすることができます。

      1. interface 属性を com.ibm.wsspi.batch.ResultsAlgorithm に設定します。
      2. ref 属性を、結果アルゴリズム Bean を宣言する Bean ID に設定します。
      3. xjcl:classname キーと、結果アルゴリズムを実装する Java クラスを表す値を使用して、プロパティーを宣言します。
      4. 結果アルゴリズムを実装する Java クラスの Bean を宣言します。
      5. 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>
  3. OSGi バッチ・アプリケーションを EBA としてエクスポートします。
  4. 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>
  5. OSGi バッチ・アプリケーションをデプロイします。

    ビジネス・レベル・アプリケーションとしての OSGi アプリケーションのデプロイに関するトピックを参照し、手順に従ってください。

タスクの結果

OSGi バッチ・アプリケーションをパッケージし、Blueprint xml を変更してバッチ成果物をサービスとして記述し、OSGi バッチ・アプリケーションを EBA (Enterprise Bundle Archive) としてエクスポートしました。次に、xJCL を作成しました。最後に、OSGi バッチ・アプリケーションをデプロイしました。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tgrid_cgbatchosgi
ファイル名:tgrid_cgbatchosgi.html