4.1.4.1.1. JSR352バッチアプリケーションの起動

4.1.4.1.1.1. バッチアプリケーションを起動する

JSR352に準拠したバッチアプリケーションの場合、バッチの起動はJSR352で規定されたAPIを使用して行う。

Nablarchでは、標準の実装クラスとして、nablarch.fw.batch.ee.Main を提供している。 このクラスは実行引数として対象JOBのXMLファイル名(.xmlを除いたファイル名)を指定する。

ジョブ実行時にパラメータを指定したい場合は、 nablarch.fw.batch.ee.Main に対して起動オプションを指定する。 起動オプションで指定した値は、 JobOperator#start のjobParametersに設定される。

起動オプションは、名前に -- を付加し、名前の次の引数に値を設定する。

起動オプションの使用例
# この例では、「option1=value1」と「option2=value2」の2つのjobParametersが設定される。
$ java nablarch.fw.batch.ee.Main jobName --option1 value1 --option2 value2

補足

プロジェクト独自で起動クラスを作成する際にも、このMainクラスを参考に実装できる。

4.1.4.1.1.2. バッチアプリケーションの終了コード

上記のMainクラスのプログラムの終了コードは以下のようになる。

  • 正常終了:0 - 終了ステータスが “WARNING” 以外の場合で、バッチステータスが BatchStatus.COMPLETED の場合
  • 異常終了:1 - 終了ステータスが “WARNING” 以外の場合で、バッチステータスが BatchStatus.COMPLETED 以外の場合
  • 警告終了:2 - 終了ステータスが “WARNING” の場合

なお、JOBの終了待ちの間に中断された場合は、異常終了のコードを返す。

バリデーションエラーなど警告すべき事項が発生している場合に、警告終了させることができる。 警告終了の方法はchunkまたはbatchlet内で、 JobContext#setExitStatus(String) を呼び出し “WARNING” を終了ステータスとして設定する。警告終了時は、バッチステータスは任意の値を許可するため、 例外を送出しバッチステータスが BatchStatus.COMPLETED 以外となる場合であっても、 終了ステータスに “WARNING” を設定していれば、上記クラスは警告終了する。

4.1.4.1.1.3. システムリポジトリを初期化する

システムリポジトリ は、ジョブリスナーに nablarchJobListenerExecutor を設定することで初期化できる。

システムリポジトリのルートxmlファイルのファイル名は、 batch-boot.xml としクラスパス直下に配置する。 ファイル名や、配置場所を変更したい場合には、 nablarchJobListenerExecutor のパラメータで変更する。

以下に例を示す。

デフォルトの batch-boot.xml を使用する場合の例
<job id="sample-job" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
  <listeners>
    <!-- ジョブリスナーにnablarchJobListenerExecutorを設定する -->
    <listener ref="nablarchJobListenerExecutor" />
  </listeners>

  <!-- ステップ定義は省略 -->
</job>
デフォルト以外の設定ファイルを使用する例
<job id="sample-job" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
  <listeners>
    <listener ref="nablarchJobListenerExecutor">
      <properties>
        <!--
        diConfigFilePathプロパティに読み込むxmlを設定する
        この例の場合、クラスパス配下の「sample_project/batch-boot.xml」が
        システムリポジトリにロードされる
        -->
        <property name="diConfigFilePath" value="sample_project/batch-boot.xml" />
      </properties>
    </listener>
  </listeners>

  <!-- ステップ定義は省略 -->
</job>