Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 拡張編


2.3.1 バッチアプリケーション実行機能の概要

バッチアプリケーション実行機能とは,バッチアプリケーションを実行するための機能です。バッチアプリケーションは,バッチアプリケーション実行機能で提供されているバッチクラスローダ上で実行されます。また,実行中のバッチアプリケーションが出力した内容は,ログ出力機能に出力されます。

バッチアプリケーション実行機能について次の図に示します。

図2‒6 バッチアプリケーション実行機能の概要

[図データ]

また,バッチアプリケーション実行機能は,EJBアクセス機能やリソース接続機能と連携できます。

EJBアクセス機能については「2.4.1 EJBアクセスで使用できる機能」を,リソース接続機能については「2.7 リソース接続機能」を参照してください。

次に,バッチアプリケーションのライフサイクルとバッチアプリケーションを実行するクラスローダについて説明します。

〈この項の構成〉

(1) バッチアプリケーションのライフサイクル

バッチアプリケーションは,cjexecjobコマンドを使用して開始します。次の図を使用して,バッチアプリケーションのライフサイクルについて説明します。

図2‒7 バッチアプリケーションのライフサイクル

[図データ]

  1. cjexecjobコマンドを実行すると,バッチアプリケーションはバッチクラスローダによってロードされます。

  2. バッチアプリケーションがバッチサーバ上で実行されます。

  3. バッチアプリケーションの処理が終了します。

    バッチアプリケーションの処理終了後に,バッチアプリケーションをロードしたバッチクラスローダがGCされます。

  4. バッチアプリケーションのクラスがアンロードされます。

    注意事項

    バッチアプリケーションはcjexecjobコマンドが実行されるたびにバッチクラスローダにロードされ,処理が完了するとクラスがアンロードされます。常駐形式のバッチアプリケーションをバッチサーバ上で動作させることは推奨しません。

(2) バッチアプリケーションの状態遷移

バッチアプリケーションの状態遷移を次の図に示します。

図2‒8 バッチアプリケーションの状態遷移(スケジューリング機能を使用しない場合)

[図データ]

「RUNNING」は,バッチアプリケーションがバッチサーバ上にあって実行中の状態です。

バッチアプリケーションの状態は,バッチアプリケーション情報から確認できます。バッチアプリケーション情報の表示方法については,「2.3.4 バッチアプリケーション情報の一覧表示」を参照してください。

(3) バッチアプリケーションを実行するクラスローダ

バッチアプリケーション実行時には,バッチサーバ上でバッチアプリケーション用のクラスローダが生成されます。バッチアプリケーションはクラスローダ上で実行されます。バッチアプリケーション用のクラスローダの構成を次の図に示します。

図2‒9 バッチアプリケーションを実行するクラスローダの構成

[図データ]

図のそれぞれのクラスローダについて説明します。

なお,バッチクラスローダ生成時には,バッチクラスローダが生成されたことを示すメッセージが出力されます(メッセージKDJE55013-I)。また,バッチクラスローダのファイナライズ処理が実行されたことを示すメッセージも出力されます(メッセージKDJE55014-I)。

クラスローダの破棄についての注意事項は,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「付録B.1 デフォルトのクラスローダ構成」を参照してください。なお,クラスローダの破棄のタイミング,クラスローダの破棄時に出力されるメッセージについては適宜読み替えてください。