バッチジョブの以下の操作について説明します。
実行
JobOperator クラスを使用して、バッチジョブを実行します。インタフェースの詳細は、jBatch公開のJavaDocを参照してください。EJBタイマやジョブスケジューラと連携することで、柔軟にバッチジョブの実行を行うことができます。
注意
Javaバッチ機能を使用する場合、Interstage DASサービス、またはIJServerクラスタ上でBatchRuntime#getJobOperator()が発行される前に使用するデータベースを起動させてください。
バッチジョブの実行時に、バッチステータスが、”STARTING”の状態で、バッチジョブが完了しない場合があります。その場合は、該当のサーバのサーバログを参照し、エラーが発生している場合は、再度、バッチジョブを実行してください。
状態確認
バッチジョブのインスタンス情報とバッチジョブやステップの実行情報を確認します。
バッチジョブのインスタンス情報の確認方法については、「10.1.21.1 list-batch-jobsサブコマンド」を参照してください。
バッチジョブの実行情報の確認方法については、「10.1.21.2 list-batch-job-executionsサブコマンド」を参照してください。
ステップの実行情報の確認方法については、「10.1.21.3 list-batch-job-stepsサブコマンド」を参照してください。
削除
バッチジョブのインスタンスあるいはインスタンスに含まれるバッチジョブ実行を削除する場合は、以下のAPIを使用します。
com.ibm.jbatch.spi.BatchJobUtilクラス
バッチジョブインスタンスの削除
boolean deleteJobInstance(long) throws NoSuchJobInstanceException, JobSecurityException, JobExecutionIsRunningException
説明
指定されたバッチジョブインスタンスを削除します。バッチジョブインスタンスに属するバッチジョブ実行や実行ステップの情報も削除します。指定されたバッチジョブインスタンスに属するバッチジョブ実行が実行中の場合は削除できません。バッチジョブ実行を停止後、本APIを使用して削除してください。
パラメタ
削除するバッチジョブインスタンスIDを指定します。
戻り値
指定されたバッチジョブインスタンスが正常に削除された場合は、trueを返却します。
例外
NoSuchJobInstanceException:指定されたバッチジョブインスタンスが存在しない場合
JobSecurityException:権限のないバッチジョブインスタンスを削除しようとした場合
JobExecutionIsRunningException: 指定されたバッチジョブインスタンスに属するバッチジョブ実行が実行中の場合
APIは以下のjarファイルに含まれます。
[Java EE 7インストールディレクトリ]\glassfish\modules\com.ibm.jbatch.spi.jar |
[Java EE 7インストールディレクトリ]/glassfish/modules/com.ibm.jbatch.spi.jar |
例
import com.ibm.jbatch.spi.BatchJobUtil; import com.ibm.jbatch.spi.BatchSPIManager; : public void anyMethod() { long instanceId = ...; BatchJobUtil util = BatchSPIManager.getInstance().getBatchJobUtil(); util.deleteJobInstance(instanceId); } : |
注意
バッチジョブの運用に伴い、ジョブリポジトリに実行情報が格納されます。格納された情報は削除されないため、必要に応じてAPI、あるいはテーブル生成DDLにより削除してください。
ジョブリポジトリで使用するテーブルインデックスは、運用に伴い定期的に再構成するなどの処理が必要になる場合があります。詳しくは各データベース製品のドキュメントを参照してください。
バッチジョブインスタンスとバッチジョブ実行の表示数制限
以下のシステムプロパティを設定することにより、asadminコマンドのサブコマンド、list-batch-jobsおよびlist-batch-job-executionsの表示個数を制限できます。システムプロパティはサブコマンドを実行する対象(--targetオプションで指定)ごとに設定する必要があります。
プロパティ名 | 値 |
---|---|
com.fujitsu.interstage.jbatch.jobinstance.listsize | 1から2147483646 (Integer.MAX_VALUE -1) |
注意
システムプロパティに設定した値が上記数値の範囲外、あるいは数値以外の文字列(空文字列を含む)の場合は、システムプロパティの値として「200」を設定したものとみなします。
このシステムプロパティに数値を設定することにより、設定した数を上限に、ジョブインスタンスが、ジョブインスタンスIDの降順で抽出されます。いずれのコマンドについても抽出されたジョブインスタンスに関連するジョブ実行の情報がサブコマンドの結果として表示されます。また、その結果はジョブ名ごとではなく、ジョブインスタンスIDごとにまとめられます。
このシステムプロパティを設定すると、管理コンソールの「バッチジョブ実行」タブについても同様に表示行数が制限されます。
システムプロパティの設定には「10.1.16.1 create-system-propertiesサブコマンド」を使用します。
例
あるIJServerクラスタ「testcluster」について、list-batch-jobs/list-batch-job-executionsサブコマンドで表示するバッチジョブインスタンスを最大100件に制限する場合
C:\Interstage\F3FMisje7\glassfish\bin\asadmin create-system-properties --target testcluster com.fujitsu.interstage.jbatch.jobinstance.listsize=100 |
/opt/FJSVisje7/glassfish/bin/asadmin create-system-properties --target testcluster com.fujitsu.interstage.jbatch.jobinstance.listsize=100 |
バッチジョブの文字列長制限値
ジョブリポジトリのテーブルに格納可能な文字列長に制限があるため、バッチジョブで使用する幾つかの文字列については下記の長さを超えないようにしてください。
要素名 | 制限長(単位:バイト) |
---|---|
ジョブ名(job id) | 128 |
ステップ名(step id) | 128 |
スプリット名(split id) | 128 |
フロー名(flow id) | 128 |
終了ステータス(exit status) | 256 |