9. バッチサービス

バッチサービスに関する運用操作について説明します。

9.1. ジョブリポジトリのセットアップ

バッチサービスは、バッチジョブの実行時に、そのジョブの実行情報をデータベースに書き込みます。 このデータベースのことをバッチサービスではジョブリポジトリと呼びます。バッチサービスではジョブリポジトリとして使用するDBとして以下のデータベースをサポートします。

バッチサービスを利用してジョブを実行するには、ジョブリポジトリがセットアップされている必要があります。
以下でジョブリポジトリのセットアップ手順を説明します。

  1. データベースの起動
    ジョブリポジトリとして使用するデータベースを起動します。
  2. テーブル作成
    データベースに対して以下のSQLを実行することで、ジョブ情報を格納するためのテーブルを作成します。
表10.1.1
データベース種別 ジョブリポジトリセットアップ用SQL
Oracle Database jsr352-oracle.sql
PostgreSQL jsr352-postgresql.sql

また、WebOTXからDBに接続するため、以下のフォルダ配下にJDBCドライバを格納してください。

Caution
複数のドメインでバッチサービスを使用する場合、ドメイン毎にジョブリポジトリのユーザもしくはスキーマを分けてください。
Caution
Oracle Databaseを利用する場合、データベースとWebOTXは同じロケールにしてください。
ロケールが異なると、日時を指定したジョブ実行履歴の検索ができません。 WebOTXのロケールを変更するには、Java vm のオプションにロケールを設定します。
(例:ロケールを日本にする場合) Java VMオプションの設定については [ドメインの構築 > > ドメイン起動停止・作成削除 > Java VMオプションの設定 > ユーザ独自のJava VMオプションの追加方法 ] を確認ください。

9.2. バッチサービスが使用するリソースの設定

バッチサービスを利用するためには、以下の設定を行う必要があります。

以降でそれぞれの設定手順を説明します。

Caution
ドメイン起動時に[DOMAIN_HOME]/logs/agent.logに次のWARNメッセージが出力された場合、バッチサービスは起動処理に失敗しており正常に動作しません。
OTX32005142: エージェントプロセスへの、エージェントプロセス-プロセスグループ間通信用のレシーバ (id: {0}) 登録に失敗しました。このままではバッチサービスが正常に動作しません。バッチサービスを利用する場合は、ドメインを再起動してください。登録処理のタイムアウト時間の既定値は60秒です。ドメイン起動時間がこれを超過する場合は、タイムアウト時間変更のため、システムJVMオプションに-Dcom.nec.webotx.batch.register_operation_listener.wait_time=<タイムアウト時間(秒)>を指定してください。
バッチサービスを利用する場合はドメインを再起動しWARNメッセージが出力されないことを確認してください。

なお、登録処理のタイムアウト時間の既定値は60秒です。タイムアウト時間を延長する場合は下記の手順を実行し、ドメインを再起動してください。

1.  エージェントプロセス - プロセスグループ間通信用レシーバ登録処理のタイムアウト時間を延長

1-1.  otxadmin コマンドを起動し、ドメインにログインします。

1-2.  次のコマンドを実行し、タイムアウトが発生しない時間に延長します。

otxadmin> create-jvm-options --system -Dcom.nec.webotx.batch.register_operation_listener.wait_time=<タイムアウト時間(秒)>

2.  次のコマンドを実行して、ドメインを再起動します。

otxadmin> stop-domain <ドメイン名>
otxadmin> start-domain <ドメイン名>

9.2.1. 運用管理コマンド(otxadmin)での手順

9.2.1.1. ジョブリポジトリとして使用するデータベース

1.  otxadmin コマンドを起動し、ドメインにログインします。

2.  次のコマンドを実行して、データソースを作成します。すでに作成済みのデータソースを利用する場合は、コマンドを実行せずに手順3に進みます。

Oracle Databaseの場合
otxadmin> create-jdbc-datasource --dataSourceType JDBCEX_Oracle --useJTA=true --jdbcUserName <jdbc_user_name> --jdbcPassword <jdbc_password> --dataSourceName <jdbc_url> jdbc/sampleDB
PostgreSQLの場合

<jdbc_url>には、キー名 currentSchema のパラメータでスキーマ名を指定します

otxadmin> create-jdbc-datasource --dataSourceType JDBC --useJTA=true --jdbcUserName <jdbc_user_name> --jdbcPassword <jdbc_password> --dataSourceName <jdbc_url> jdbc/sampleDB

3.  次のコマンドを実行して、ジョブリポジトリとして使用するデータソースを指定します。

otxadmin> set-batch-runtime-configuration --dataSourceLookupName jdbc/sampleDB

4.  次のコマンドを実行して、ドメインを再起動します。

otxadmin> stop-domain <ドメイン名>
otxadmin> start-domain <ドメイン名>
9.2.1.2. ExecutorService

1.  otxadmin コマンドを起動し、ドメインにログインします。

2.  次のコマンドを実行して、ExecutorServiceの作成と設定変更を行います。すでに作成済みのExecutorServiceを利用する場合は、コマンドを実行せずに手順3に進みます。

otxadmin> create-managed-executor-service concurrent/sampleExecutor
otxadmin> set server.resources.managed-executor-service.concurrent/sampleExecutor.long-running-tasks=true

3.  次のコマンドを実行して、使用するExecutorServiceを指定します。

otxadmin> set-batch-runtime-configuration --executorServiceLookupName concurrent/sampleExecutor

4.  次のコマンドを実行して、ドメインを再起動します。

otxadmin> stop-domain <ドメイン名>
otxadmin> start-domain <ドメイン名>

9.2.2. 統合運用管理ツールでの手順

以下で手順を説明します。

1.  統合運用管理ツールよりドメインと接続します。

2.  ツリービューより「<ドメイン名>」-「リソース」-「JDBCデータソース」を選択します。

3.  右クリックメニューから「JDBCデータソースの登録」を選択します。

4.  「一般」タブの「JNDIサーバへの登録名」に「jdbc/sampleDB」を入力します。

5.  利用するデータベースにより、「一般」タブで以下を設定します。

Oracleの設定項目
項目 説明
データソースの種別 「OracleのJDBC Optional Package API」を選択します。
JTA連携有無 有効(チェックあり)
JDBC URLまたはデータベース名、データソース名 JDBC URLを設定します。
ユーザ名 データベースと接続するためのユーザ名を指定します。
パスワード データベースと接続するためのパスワードを指定します。
PostgreSQLの設定項目
項目 説明
データソースの種別 「JDBC API」を選択します。
JTA連携有無 有効(チェックあり)
JDBC URLまたはデータベース名、データソース名 JDBC URLを設定します。キー名 currentSchema のパラメータでスキーマ名を指定します。
ユーザ名 データベースと接続するためのユーザ名を指定します。
パスワード データベースと接続するためのパスワードを指定します。

6.  ツリービューより「<ドメイン名>」-「リソース」-「Concurrency Resources」-「ManagedExecutorService」を選択します。

7.  右クリックメニューから「ManagedExecutorServiceの登録」を選択します。

8.  「ManagedExecutorServiceの登録」画面で、「JNDI名」に「concurrent/sampleExecutor」を入力し、「実行」をクリックします。

9.  ツリービューより「<ドメイン名>」-「アプリケーションサーバ」-「バッチサービス」を選択します。

10.  画面の右側の「データソースのJNDI名」に「jdbc/sampleDB」を、「ExecutorServiceのJNDI名」に「concurrent/sampleExecutor」を入力し、「更新」ボタンをクリックします。

11.  設定反映のためドメインを再起動します。


図10.2.2-1

9.2.3. 運用管理コンソールでの手順

以下で手順を説明します。

1.  運用管理コンソールよりよりドメインと接続します。

2.  ツリービューより「<ドメイン名>」-「リソース」-「JDBCデータソース」を選択します。

3.  右側の操作リストから「JDBCデータソースの登録」を選択します。

4.  「JDBCデータソースの登録」画面で、[ 統合運用管理ツールでの手順 ] と同様の設定を入力し、「実行」をクリックします。

5.  ツリービューより「<ドメイン名>」-「リソース」-「Concurrency Resources」-「ManagedExecutorService」を選択します。

6.  右側の操作リストから「ManagedExecutorServiceの登録」を選択します。

7.  「ManagedExecutorServiceの登録」画面で、[ 統合運用管理ツールでの手順 ] と同様の設定を入力し、「実行」をクリックします。

8.  ツリービューより「<ドメイン名>」-「アプリケーションサーバ」-「バッチサービス」を選択します。

9.  画面の右側の「データソースのJNDI名」に「jdbc/sampleDB」を、「ExecutorServiceのJNDI名」に「concurrent/sampleExecutor」を入力し、「更新」ボタンをクリックします。

10.  設定反映のためドメインを再起動します。

9.3. バッチアプリケーションの配備・配備解除

9.3.1. 配備

バッチジョブを含むアプリケーションを配備すると、配備するバッチジョブに対応するバッチジョブノードが生成されます。なお、WebOTXのバッチサービスとしてサポートするアプリケーション種別は以下となります。


図10.2.3-1

生成されたバッチジョブノードの操作としてジョブを実行することができます。バッチジョブノードの属性と操作についての詳細は [ リファレンス > MBean定義 > バッチジョブノード ] を参照してください。

アプリケーション配備の詳細については [ 配備 > アプリケーション配備 > 4. 配備・再配備・置換 > 4.4. 配備・再配備 ] を参照してください。

9.3.2. 配備解除

バッチジョブを含むアプリケーションを配備解除すると、配備解除するバッチジョブに対応するバッチジョブノードが削除されます。 また、バッチサービスノードの「バッチアプリケーション配備解除時におけるジョブ実行履歴自動削除の有効化」属性を有効化している場合、 配備解除したジョブの実行履歴が削除されます。

アプリケーション配備解除の詳細については [ 配備 > アプリケーション配備 > 5. 配備解除 ] を参照してください。

9.4. ジョブの実行制御

バッチサービスでは、下記の種別のアプリケーションに含まれるバッチジョブについて、ジョブの起動、停止、再起動の操作が可能です。

実行制御が可能な条件について

ジョブの実行・停止・再実行は、以下の条件で実行できます。

実行制御のために送信するHTTPリクエストの送信先について

バッチサービスはジョブ制御操作を受けると、内部的に、バッチジョブが含まれるWebアプリケーションへのHTTPリクエストを送信します。 このHTTPリクエストの送信先として、ポート番号を指定することができます。以下の属性で設定が可能です。

以下の表で、各属性の設定状況の組み合わせと、リクエスト送信先ポートとして採用される値について説明します。
なお、リクエスト送信先ポートとしては、バッチジョブが含まれるWebアプリケーションが リクエストを受信できるポート番号を設定する必要があることに注意してください。

表10.4.1.1.
バッチサービスノード
[ジョブ操作HTTPリクエスト送信ポート] 属性
バッチジョブノード
[ジョブ操作HTTPリクエスト送信ポート] 属性
リクエスト送信先ポート
設定されている 設定されていない バッチサービスノードの設定値を採用する
設定されていない 設定されている バッチジョブノードの設定値を採用する
設定されている 設定されている バッチジョブノードの設定値を採用する(バッチジョブノードを優先する)
設定されていない 設定されていない Webサーバとして内蔵Webサーバ、WebOTX Webサーバが使用されている場合は、
その待ち受けポートを取得して採用する。(※1)
それ以外の場合はポート番号未設定のため、ジョブ制御に失敗する。

(※1)設定によってはポート番号が取得できずジョブ実行制御に失敗する場合があります。 その場合はバッチサービスノードあるいはバッチジョブノードの [ ジョブ操作HTTPリクエスト送信ポート ] 属性への設定を行ってください。

以降で、コマンド、統合運用管理ツール/運用管理コンソール、プログラム、それぞれのジョブ実行制御の手順を説明します。

9.4.1. 運用管理コマンド(otxadmin)での実行制御

ジョブの実行制御を行うためのコマンドを提供しています。各コマンドの詳細についてはコマンドリファレンスを参照してください。

表10.4.1.1.
コマンド名 説明
start-batch-job 指定したジョブを実行します。
stop-batch-job 指定したジョブ実行を停止します。
restart-batch-job 指定したジョブ実行を再実行します。
Memo

以下で、それぞれのコマンドを使用したジョブ実行制御について説明します。

9.4.1.1. ジョブの実行

実行するジョブはオペランドで指定します。ジョブ名として、実行対象ジョブのジョブ定義XMLファイル名(拡張子は除く)を指定します。 他にジョブ名が重複するジョブが配備されている場合は、 --modulename オプションでモジュール名を指定することでジョブを特定します。 また、ジョブ実行時にジョブパラメータを渡す場合は --jobparameters オプションでプロパティファイルを指定します。

1.  otxadmin コマンドを起動し、ドメインにログインします。

2.  次のコマンドを実行して、ジョブを実行します。

otxadmin> start-batch-job [ --modulename <モジュール名> ] [ --jobparameters <プロパティファイルの絶対パス> ] <ジョブ名>
9.4.1.2. ジョブの停止

停止するジョブ実行についてのジョブ実行IDをオペランドで指定します。ジョブ実行IDは list-batch-job-executions コマンド、 あるいは統合運用管理ツール / 運用管理コンソールのジョブ実行履歴から取得します。

1.  otxadmin コマンドを起動し、ドメインにログインします。

2.  次のコマンドを実行して、ジョブを停止します。

otxadmin> stop-batch-job <ジョブ実行ID>
9.4.1.3. ジョブの再実行

再実行するジョブ実行についてのジョブ実行IDをオペランドで指定します。ジョブ実行IDは list-batch-job-executions コマンド、 あるいは統合運用管理ツール / 運用管理コンソールのジョブ実行履歴から取得します。 また、ジョブ再実行時にジョブパラメータを渡す場合は --jobparameters オプションでプロパティファイルを指定します。

1.  otxadmin コマンドを起動し、ドメインにログインします。

2.  次のコマンドを実行して、ジョブを再実行します。

otxadmin> restart-batch-job [ --jobparameters <プロパティファイルの絶対パス> ] <ジョブ実行ID>

9.4.2. 統合運用管理ツール/運用管理コンソールからの実行制御

9.4.2.1. ジョブの実行
以下で、統合運用管理ツール/運用管理コンソールからのジョブ実行制御について説明します。
Memo
統合運用管理ツールからの操作

1.  統合運用管理ツールよりドメインと接続します。

2.  ツリービューより「<ドメイン名>」-「アプリケーションサーバ」-「バッチサービス」-「バッチジョブ」-「<ジョブ名>」を選択します。

3.  右クリックメニューより「ジョブ起動」を選択します。

4.  必要に応じてパラメータファイルの絶対パスを指定し、「実行」ボタンをクリックします。


図10.4.2-1

運用管理コンソールからの操作

1.  運用管理コンソールよりドメインと接続します。

2.  ツリービューより「<ドメイン名>」-「アプリケーションサーバ」-「バッチサービス」-「バッチジョブ」-「<ジョブ名>」を選択します。

3.  右画面の「操作」タブから「ジョブ起動」を選択します。

4.  必要に応じてパラメータファイルの絶対パスを指定し、「実行」ボタンをクリックします。


図10.4.2-2

9.4.2.2. ジョブの停止・再実行
統合運用管理ツールからの操作

1.  統合運用管理ツールよりドメインと接続します。

2.  ツリービューより「<ドメイン名>」-「アプリケーションサーバ」-「バッチサービス」を選択します。

3.  右クリックメニューより「ジョブ実行履歴」を選択し、「ジョブ実行履歴」画面を表示します。

4.  対象ジョブの「停止」ボタンまたは「再実行」ボタンをクリックします。


図10.4.2-3

Memo
運用管理コンソールからの操作

1.  運用管理コンソールよりドメインと接続します。

2.  ツリービューより「<ドメイン名>」-「アプリケーションサーバ」-「バッチサービス」を選択します。

3.  右画面で「ジョブ実行履歴」タブを表示します。

4.  対象ジョブの「停止」ボタンまたは「再実行」ボタンをクリックします。


図10.4.2-4

Memo

9.4.3. プログラムからの実行制御

JSR-352ではジョブを操作するためのAPIを提供しています。Javaのプログラムから javax.batch.operations.JobOperator クラスの startメソッド、stopメソッド、restartメソッドを呼び出すことで、ジョブの実行、停止、再実行が可能です。

9.4.3.1. ジョブの実行

以下のように、javax.batch.operations.JobOperatorクラスのstartメソッドを使用して、ジョブを実行します。
startメソッドの戻り値はJobExecutionIDという、ジョブ実行を一意にあらわすlong値です。 ジョブの停止や再起動は、このJobExecutionIDを指定して行います。

JobOperator operator = BatchRuntime.getJobOperator();

// ジョブパラメータの指定は省略してジョブを実行
long executionId = operator.start("sample-job", null);
9.4.3.2. ジョブの停止

以下のように、javax.batch.operations.JobOperatorクラスのstopメソッドを使用して、ジョブを停止します。
停止するジョブの指定は、startメソッドの戻り値で取得したJobExecutionIDで行います。

JobOperator operator = BatchRuntime.getJobOperator();

long executionId = operator.start("sample-job", null);
// 実行中のジョブを停止
operator.stop(executionId);
		
9.4.3.3. ジョブの再実行

以下のように、javax.batch.operations.JobOperatorクラスのrestartメソッドを使用して、ジョブを再実行します。
再実行するジョブの指定は、startメソッドの戻り値で取得したJobExecutionIDで行います。

JobOperator operator = BatchRuntime.getJobOperator();

long executionId = operator.start("sample-job", null);
operator.stop(executionId);

// 停止したジョブを再実行
operator.restart(executionId, null);
		
9.4.3.4. ジョブに親子関係を持たせる場合

WebOTXのバッチサービスで独自に提供しているAPIを使用してジョブを実行・再実行することで 2つのジョブ間に親子関係を持たせることができます。com.ibm.jbatch.container.jar に含まれる com.ibm.jbatch.container.api.impl.JobOperatorImpl クラスの以下のメソッドを使用します。

上記メソッドのlong型の第3引数に、自ジョブのジョブ実行IDを渡して呼び出すことで、 呼び出したジョブを親ジョブ、メソッド呼び出しによって実行されたジョブを子ジョブとしてジョブが実行・再実行されます。 この時、ジョブリポジトリの子ジョブ側のジョブ実行履歴に親ジョブのジョブ実行IDが記録されます。
下記に、Batchletから子ジョブとしてジョブを実行する例を記載しています。まずJobContext経由で自ジョブの ジョブ実行IDを取得し、そのジョブ実行IDを引数に渡してstartメソッドを実行しています。

public class SimpleBatchlet implements Batchlet{
  @Inject
  JobContext context;

  public String process() throws Exception {
  // 自ジョブ(親側)のジョブ実行IDの取得
  String myJobExecutionId = String.valueOf(context.getExecutionId());

  //ジョブを子ジョブとして実行
  JobOperatorImpl jobOperator = nwe JobOperatorImpl();
  jobOperator.start("child-job", jobParameter, myJobExecutionId);
  }
}

9.5. ジョブ実行履歴の参照

ジョブ実行履歴画面・ステップ実行履歴画面の参照および検索手順について説明します。

9.5.1. ジョブ実行履歴画面

9.5.1.1. 統合運用管理ツールからの操作

1.  統合運用管理ツールよりドメインと接続します。

2.  ツリービューより「<ドメイン名>」-「アプリケーションサーバ」-「バッチサービス」を選択します。

3.  右クリックメニューより「ジョブ実行履歴」を選択し、「ジョブ実行履歴」画面を表示します。

4.  「ジョブ実行履歴」を参照する場合は「ジョブ」タブを、「ステップ実行履歴」を参照する場合は「ステップ」タブを選択します。

5.  「ジョブ」タブでジョブを検索する場合は、次の検索項目に値を設定し、「検索」ボタンをクリックします。


図10.5.1-1

表10.5.1.1.
表示項目 説明
ジョブ実行ID 実行したジョブを一意に識別するIDです。
選択 検索結果から個々にコードを削除するときにチェックします。
詳細表示 ジョブフロー画面を表示する「詳細」ボタンを表示します。「詳細」ボタンは、親ジョブのみ表示します。
ジョブ操作 ジョブの停止、再実行操作を行う「停止」「再実行」ボタンを表示します。
ジョブ名 実行されたジョブ名です。
ジョブのステップを"split"で並行して実行した場合、このステップの実行履歴をジョブの実行履歴画面にも表示します。
この場合、ジョブ名は「:{ジョブインスタンスID}:{スプリット名}:{フロー名}」の形式で表示します。
バッチステータス 処理の状態および実行結果を示すステータスを表示します。
STARTING :ジョブが開始され、処理が始まる前の状態です。
STARED :ジョブの処理中です。
STOPPING :ジョブの停止操作要求、または、<stop>エレメントでジョブ停止を受け付けた状態です。
STOPPED :ジョブの停止操作要求、または、<stop>エレメントでジョブが停止した状態です。
FAILED :ジョブで例外が発生した、または、<fail>エレメントで停止した状態です。
COMPLETE :ジョブが正常終了した、または、<end>エレメントで停止した状態です。
ABANDONED:ジョブが異常終了した状態です。
終了ステータス ジョブ定義、または、プログラム中で指定した終了ステータスを表示します。終了ステータスが指定されていない場合は、バッチステータスと同じステータスを表示します。
ジョブインスタンスID ジョブ実行時に割り振られます。ジョブの再実行では新規のIDは割り振られず、再実行するジョブと同じジョブインスタンスIDが割り当てられます。
開始日時 ジョブの開始時刻を表示します。
終了日時 ジョブの終了時刻を表示します。
所要時間 ジョブの所要時間(秒)を表示します。
分類タグ ジョブ実行定義で指定された分類タグを表示します。
コメント ジョブ実行定義で指定されたコメントを表示します。
親ジョブID ジョブが子ジョブの場合は、親ジョブIDを表示します。
表10.5.1.2.
検索項目 説明
ジョブ名 指定した文字列がジョブ名またはジョブ名の一部と一致するジョブを検索指定します。
ジョブインスタンスID 指定したジョブインスタンスIDと一致するジョブを検索します。
ジョブ実行ID 指定したジョブ実行IDと一致するジョブを検索します。
ジョブ実行期間 ジョブ実行期間の開始時刻に指定した時刻以降にジョブが開始され、終了時刻に指定した時刻より前に終了したジョブを検索します。
ジョブ所要時間 ジョブ所要時間が指定した値(秒)以上、または以下のジョブを検索します。
バッチステータス 選択したバッチステータスと一致するジョブを検索します。
終了ステータス 指定した文字列が終了ステータスまたは終了ステータスの一部と一致するジョブを検索します。
分類タグ 指定した文字列が分類タグまたは分類タグの一部と一致するジョブを検索します。複数の検索文字列を指定する場合は、半角スペースで区切ってください。
コメント 指定した文字列がコメントまたはコメントの一部と一致するジョブを検索します。
親ジョブのジョブ実行ID 指定した親ジョブの実行IDと一致するジョブを検索します。

6.  「ステップ」タブでステップを検索する場合は、次の検索項目に値を設定し、「検索」ボタンをクリックします。


図10.5.1-2

表10.5.1.3.
表示項目 説明
ステップ実行ID 実行したステップを一意に識別するIDです。
ステップ名 ステップ名を表示します。
バッチステータス 処理の状態および実行結果を示すステータスを表示します。
STARTING :ジョブが開始され、処理が始まる前の状態です。
STARED :ジョブの処理中です。
STOPPING :ジョブの停止操作要求、または、<stop>エレメントでジョブ停止を受け付けた状態です。
STOPPED :ジョブの停止操作要求、または、<stop>エレメントでジョブが停止した状態です。
FAILED :ジョブで例外が発生した、または、<fail>エレメントで停止した状態です。
COMPLETE :ジョブが正常終了した、または、<end>エレメントで停止した状態です。
ABANDONED:ジョブが異常終了した状態です。
終了ステータス ジョブ定義、または、プログラム中で指定した終了ステータスを表示します。終了ステータスが指定されていない場合は、バッチステータスと同じステータスを表示します。
開始日時 ステップの開始時刻を表示します。
終了日時 ステップの終了時刻を表示します。
所要時間 ステップの所要時間(秒)を表示します。
コメント ジョブ実行定義で指定されたステップのコメントを表示します。
リードスキップ 読み取り時にスキップが発生した回数を表示します。
ライトスキップ 書き込み時にスキップが発生した回数を表示します。
プロセススキップ データ処理時にスキップが発生した回数を表示します。
ジョブインスタンスID ジョブのインスタンスIDを表示します。
ジョブ実行ID ジョブの実行IDを表示します。
表10.5.1.4.
検索項目 説明
ステップ名 指定した文字列がステップ名またはステップ名の一部と一致するステップを検索指定します。
ステップ実行ID 指定したステップ実行IDと一致するステップを検索します。
ステップ実行期間 ステップ実行期間の開始時刻に指定した時刻以降にステップが開始され、終了時刻に指定した時刻より前に終了したステップを検索します。
ステップ所要時間 ステップ所要時間が指定した値(秒)以上、または以下のステップを検索します。
終了ステータス 指定した文字列が終了ステータスまたは終了ステータスの一部と一致するステップを検索します。
コメント 指定した文字列がコメントまたはコメントの一部と一致するステップを検索します。
メトリクス 選択したメトリクスが指定した回数以上、または以下のステップを検索します。
ジョブインスタンスID 指定したジョブインスタンスIDと一致するステップを検索します。
ジョブ実行ID 指定したジョブ実行IDと一致するステップを検索します。
Memo
「検索」ボタンが隠れている場合は、検索項目と検索結果の間をクリックして、検索項目の領域を広げてください。
Caution
9.5.1.2. 運用管理コンソールからの操作

1.  運用管理コンソールよりドメインと接続します。

2.  ツリービューより「<ドメイン名>」-「アプリケーションサーバ」-「バッチサービス」を選択します。

3.  右画面で「ジョブ実行履歴」タブを表示します。

4.  「ジョブ実行履歴」を参照する場合は「ジョブ実行履歴リスト」で「ジョブ」を、「ステップ実行履歴」を参照する場合は「ステップ」を選択します。

5.  「ジョブ実行履歴リスト」の「ジョブ」でジョブを検索する場合は、次の検索項目に値を設定し、「検索」ボタンをクリックします。


図10.5.1-2

表10.5.1.5.
表示項目 説明
ジョブ実行ID 実行したジョブを一意に識別するIDです。
ジョブ操作 ジョブの停止、再実行操作を行う「停止」「再実行」ボタンを表示します。
ジョブ名 実行されたジョブ名です。
ジョブのステップを"split"で並行して実行した場合、このステップの実行履歴をジョブの実行履歴画面にも表示します。
この場合、ジョブ名は「:{ジョブインスタンスID}:{スプリット名}:{フロー名}」の形式で表示します。
バッチステータス 処理の状態および実行結果を示すステータスを表示します。
STARTING :ジョブが開始され、処理が始まる前の状態です。
STARED :ジョブの処理中です。
STOPPING :ジョブの停止操作要求、または、<stop>エレメントでジョブ停止を受け付けた状態です。
STOPPED :ジョブの停止操作要求、または、<stop>エレメントでジョブが停止した状態です。
FAILED :ジョブで例外が発生した、または、<fail>エレメントで停止した状態です。
COMPLETE :ジョブが正常終了した、または、<end>エレメントで停止した状態です。
ABANDONED:ジョブが異常終了した状態です。
終了ステータス ジョブ定義、または、プログラム中で指定した終了ステータスを表示します。終了ステータスが指定されていない場合は、バッチステータスと同じステータスを表示します。
ジョブインスタンスID ジョブ実行時に割り振られます。ジョブの再実行では新規のIDは割り振られず、再実行するジョブと同じジョブインスタンスIDが割り当てられます。
開始日時 ジョブの開始時刻を表示します。
終了日時 ジョブの終了時刻を表示します。
所要時間 ジョブの所要時間(秒)を表示します。
分類タグ ジョブ実行定義で指定された分類タグを表示します。
コメント ジョブ実行定義で指定されたコメントを表示します。
親ジョブ実行ID ジョブが子ジョブの場合は、親ジョブIDを表示します。
表10.5.1.6.
検索項目 説明
ジョブ名 指定した文字列がジョブ名またはジョブ名の一部と一致するジョブを検索指定します。
バッチステータス 選択したバッチステータスと一致するジョブを検索します。
ジョブ実行期間 ジョブ実行期間の開始時刻に指定した時刻以降にジョブが開始され、終了時刻に指定した時刻より前に終了したジョブを検索します。
ジョブ所要時間 ジョブ所要時間が指定した値(秒)以上、または以下のジョブを検索します。

6.  「ジョブ実行履歴リスト」の「ステップ」でステップを検索する場合は、次の検索項目に値を設定し、「検索」ボタンをクリックします。

表10.5.1.7.
表示項目 説明
ステップ実行ID 実行したステップを一意に識別するIDです。
ステップ名 ステップ名を表示します。
バッチステータス 処理の状態および実行結果を示すステータスを表示します。
STARTING :ジョブが開始され、処理が始まる前の状態です。
STARED :ジョブの処理中です。
STOPPING :ジョブの停止操作要求、または、<stop>エレメントでジョブ停止を受け付けた状態です。
STOPPED :ジョブの停止操作要求、または、<stop>エレメントでジョブが停止した状態です。
FAILED :ジョブで例外が発生した、または、<fail>エレメントで停止した状態です。
COMPLETE :ジョブが正常終了した、または、<end>エレメントで停止した状態です。
ABANDONED:ジョブが異常終了した状態です。
終了ステータス ジョブ定義、または、プログラム中で指定した終了ステータスを表示します。終了ステータスが指定されていない場合は、バッチステータスと同じステータスを表示します。
開始日時 ステップの開始時刻を表示します。
終了日時 ステップの終了時刻を表示します。
所要時間 ステップの所要時間(秒)を表示します。
コメント ジョブ実行定義で指定されたステップのコメントを表示します。
リードスキップ 読み取り時にスキップが発生した回数を表示します。
プロセススキップ データ処理時にスキップが発生した回数を表示します。
ライトスキップ 書き込み時にスキップが発生した回数を表示します。
ジョブインスタンスID ジョブのインスタンスIDを表示します。
ジョブ実行ID ジョブの実行IDを表示します。
表10.5.1.8.
検索項目 説明
ステップ名 指定した文字列がステップ名またはステップ名の一部と一致するステップを検索指定します。
バッチステータス 選択したバッチステータスと一致するジョブを検索します。
ステップ実行期間 ステップ実行期間の開始時刻に指定した時刻以降にシテップが開始され、終了時刻に指定した時刻より前に終了したステップを検索します。
ステップ所要時間 ステップ所要時間が指定した値(秒)以上、または以下のステップを検索します。
Memo
Caution

9.5.2. ジョブフロー画面

1.  統合運用管理ツールよりドメインと接続します。

2.  ツリービューより「<ドメイン名>」-「アプリケーションサーバ」-「バッチサービス」を選択します。

3.  右クリックメニューより「ジョブ実行履歴」を選択し、「ジョブ実行履歴」画面を表示し。「ジョブ」タブを選択します。

4.  ジョブの「詳細」ボタンをクリックすると、ジョブフロー画面が表示されます。


図10.5.1-3

表10.5.2.1.
項目 説明
Stepノード ステップとステップの状態を表しています。Stepのアイコンをクリックすると、同ウィンドウ上にクリックしたStepについての詳細情報を表示します。
Flowノード フローを表しています。Flowのアイコンをダブルクリックすると、Flowの詳細画面を表示します。
Splitノード 同時に処理するFlowの定義を表しています。Splitのアイコンをダブルクリックすると、Splitの詳細画面を表示します。
Decisionノード 判断ロジックを表しています。
Memo
Caution

9.5.3. 運用管理コマンド(otxadmin)

ジョブ実行履歴を参照するためのコマンドを提供しています。各コマンドの詳細についてはコマンドリファレンスを参照してください。

表10.5.3.1.
コマンド名 説明
list-batch-jobs ジョブリポジトリに記録されているジョブに関する情報を表示します。
list-batch-job-executions ジョブリポジトリに記録されているジョブ実行履歴を表示します。
list-batch-job-steps ジョブリポジトリに記録されているステップ実行履歴を表示します。
9.5.3.1. list-batch-jobs

オペランドで指定したジョブIDに関する情報を表示します。ジョブIDはジョブ定義XMLファイルのjob要素のid属性に指定された値です。 なお、オペランドを指定しなければすべてのジョブに関する情報を表示します。 また、表示内容をファイル出力する場合は --outputfile オプションで出力ファイルを指定します。

1.  otxadmin コマンドを起動し、ドメインにログインします。

2.  次のコマンドを実行して、ジョブを実行します。

otxadmin> list-batch-jobs [ --outputfile <結果を出力するファイルの絶対パス> ] [<ジョブID>]

以下のような結果が出力されます。

JOBNAME                    INSTANCECOUNT
job1                       1
job2                       10
9.5.3.2. list-batch-job-executions

オペランドで指定したジョブインスタンスID、オプションで指定したジョブ実行IDに関するジョブ実行履歴を表示します。 表示内容をファイル出力する場合は --outputfile オプションで出力ファイルを指定します。

1.  otxadmin コマンドを起動し、ドメインにログインします。

2.  次のコマンドを実行して、ジョブを実行します。

otxadmin> list-batch-job-executions [ --executionid <ジョブ実行ID> ] [ --outputfile <結果を出力するファイルの絶対パス> ] [<ジョブインスタンスID>]

以下のような結果が出力されます。

JOBNAME                    EXECUTIONID  STARTTIME                     ENDTIME                       BATCHSTATUS  EXITSTATUS
job1                       2            Mon Jan 21 12:49:15 JST 2019  Mon Jan 21 12:49:15 JST 2019  COMPLETED    COMPLETED
job1                       1            Mon Jan 21 12:47:17 JST 2019  Mon Jan 21 12:47:19 JST 2019  COMPLETED    COMPLETED
9.5.3.3. list-batch-job-steps

オペランドで指定したジョブ実行IDに関するステップ実行履歴を表示します。 表示内容をファイル出力する場合は --outputfile オプションで出力ファイルを指定します。

1.  otxadmin コマンドを起動し、ドメインにログインします。

2.  次のコマンドを実行して、ジョブを実行します。

otxadmin> list-batch-job-steps [ --outputfile <結果を出力するファイルの絶対パス> ] <ジョブ実行ID>

以下のような結果が出力されます。

STEPNAME  STEPID  STARTTIME                     ENDTIME                       BATCHSTATUS  EXITSTATUS
step1     1       Thu Jan 24 17:33:28 JST 2019  Thu Jan 24 17:33:42 JST 2019  COMPLETED    COMPLETED

9.6. ジョブリポジトリ管理

ジョブリポジトリ管理機能として、ジョブリポジトリに保管されているジョブ実行履歴の削除機能と、 ジョブリポジトリのメンテナンス機能を提供しています。

9.6.1. ジョブ実行履歴の削除

ジョブ実行履歴の削除は、統合運用管理ツールによる手動削除と、指定した保存期間を過ぎた履歴を自動で削除する機能を利用できます。

9.6.1.1. 保存期間を過ぎたジョブ実行履歴の自動削除

バッチサービスノードの [保存期間を過ぎたジョブ実行履歴の自動削除の有効化] 属性が有効化されている場合、毎日0:00頃に [ジョブ実行履歴の保存期間] に設定された日数より古いジョブ実行履歴を自動的に削除します。自動削除はデフォルトでは無効化されています。

Caution
9.6.1.2. 統合運用管理ツールからの手動削除

1.  統合運用管理ツールよりドメインと接続します。

2.  ツリービューより「<ドメイン名>」-「アプリケーションサーバ」-「バッチサービス」を選択します。

3.  右クリックメニューより「ジョブ実行履歴」を選択し、「ジョブ実行履歴」画面を表示します。

4.  ジョブ実行履歴を削除する場合は、「ジョブ」タブを選択します。

5.  「選択」列で削除するジョブをチェックし、「チェックしたレコード」ボタンをクリックすると、チェックしたジョブを実行履歴から削除します。検索項目に検索する値を設定し、「条件に一致する全レコード」ボタンをクリックすると、検索項目に一致するジョブを実行履歴およびジョブリポジトリから削除します。


図10.6.1-1

Memo
Caution

9.6.2. ジョブリポジトリのメンテナンス

ジョブ実行中のデータベースダウンなどでバッチステータスとジョブの実行結果の矛盾を解決したい場合に、 本機能を利用してジョブリポジトリのメンテナンスを行うことができます。

9.6.2.1. 統合運用管理ツールからの操作

1.  統合運用管理ツールよりドメインと接続します。

2.  ツリービューより「<ドメイン名>」-「アプリケーションサーバ」-「バッチサービス」を選択します。

3.  右クリックメニューより「ジョブ実行履歴」を選択し、「ジョブ実行履歴」画面を表示します。

4.  「ジョブ」タブまたは「ステップ」タブを選択します。

5.  「ステータス強制変更」の「強制変更モードへ移行」ボタンをクリックしますと、「バッチステータス」および「終了ステータス」を変更することができます。

6.  「バッチステータス」および「終了ステータス」のステータスをクリックし、ステータスを変更して、「更新」ボタンをクリックしてください。


図10.5.1-2

Memo
Caution