バッチアプリケーションとは,バッチ処理の内容を実装したJavaアプリケーションです。ここでは,バッチアプリケーションの作成規則について説明します。
バッチアプリケーションは,JavaVMで規定しているクラスファイル形式にします。なお,複数のクラスを使用する場合は次のこともできます。
バッチアプリケーションには,Javaで記述できる処理を実装できます。ただし,ファイルの操作やバッチアプリケーション内で使用するスレッドなどについて,使用時の注意事項があります。アプリケーション作成時の注意については,「2.3.11 バッチアプリケーション作成時の注意」を参照してください。
バッチ処理の開始メソッドとして,次のどちらかのメソッドをバッチアプリケーションに定義してください。
mainメソッドの戻り値の型と修飾子が異なる場合,バッチアプリケーションは実行できません。なお,mainメソッドにはthrowsを指定できます。mainメソッドの引数には,cjexecjobコマンドに指定した引数が文字列配列で渡されます。
また,JavaVM終了メソッドを使用できる設定にした場合は,バッチアプリケーションの開始時に,バッチサーバによってバッチアプリケーション実行開始スレッドが作成され,スレッドグループ(batchThreadGroup)に登録されます。JavaVM終了メソッドは,簡易構築定義ファイルでejbserver.batch.application.exit.enabledパラメタに「true」を指定した場合に使用できます。ejbserver.batch.application.exit.enabledパラメタの設定については,「2.3.10 実行環境での設定(バッチサーバの設定)」を参照してください。
バッチアプリケーションが次のどちらかの状態になると処理が終了します。
また,次のどれかの状態になると,バッチアプリケーションのスレッド(batchThreadGroupに属するスレッド)が終了します。
バッチアプリケーション終了時に使用できる終了処理を次の表に示します。
表2-8 バッチアプリケーション終了時に使用できる終了処理
バッチアプリケーションの終了方法 | 使用できる終了処理 | ||
---|---|---|---|
java.io.deleteOnExit | シャットダウンフック | ||
JavaVM終了メソッドの呼び出しによる終了 | java.lang.System.exit(int)の呼び出しによる終了 | ○ | ○ |
java.lang.Runtime.exit(int)の呼び出しによる終了 | ○ | ○ | |
java.lang.Runtime.halt(int)の呼び出しによる終了 | ○ | × | |
[Ctrl]+[C]による終了 | × | × | |
mainメソッドのリターンによる終了 | ○ | ○ | |
mainスレッドでの例外発生による終了 | ○ | ○ |
(凡例)○:使用できる ×:使用できない
なお,JavaVM終了メソッドは,簡易構築定義ファイルでejbserver.batch.application.exit.enabledパラメタに「true」を指定した場合に使用できます。ejbserver.batch.application.exit.enabledパラメタの設定については,「2.3.10 実行環境での設定(バッチサーバの設定)」を参照してください。