Hitachi

uCosminexus Batch Job Execution Server 使用の手引


5.2.1 バッチジョブの起動

バッチジョブ実行システムのバッチジョブは,JP1/AJSからシェルを経由して起動することやコマンドラインから起動することもできる。バッチジョブ業務で使用する場合は,JP1/AJSから直接またはシェルを経由して起動することを前提としている。コマンドラインからの実行は動作確認などで使用すること。

〈この項の構成〉

(1) JP1/AJSから起動する場合

JP1/AJSからバッチジョブ実行システムのバッチジョブを起動するには,次のどちらかのジョブを使う。

JP1/AJSからOS標準のシェルを経由して起動する場合,JP1/AJSからバッチジョブ実行システムを強制終了したときジョブログが途中までしか表示されないことがある。これはシェルがバッチジョブ実行システムのジョブログ出力を待たずに終了してしまうためである。ジョブログをすべて表示させるためには,シェルでSIGTERMシグナルをトラップする必要がある。以下にシェルでSIGTERMシグナルをトラップする例を示す。

注※ AIXの場合ksh,Linuxの場合bash

シェルでSIGTERMシグナルをトラップする例

  trap 'exit 255' TERM                   ・・・SIGTERMを受けると終了コード255で終了する
    bjexec /xml/gyomu1.xml

バッチジョブの起動方法による強制終了の方法と制限事項を以下にまとめる。

表5‒1 JP1/AJSからバッチジョブを起動した場合の強制終了の方法と制限事項

項目

バッチジョブの起動

直接実行する場合

OS標準のシェルを経由して起動

JP1/ASを経由して起動

制限事項

なし

  • 環境変数AJS_BJEX_STOPを設定してもKAKC0002-Wが出力される※1

  • ジョブ起動時に環境変数SHELLにOS標準のシェルを設定すること(JP1/AJSが環境変数SHELLにJP1/ASを設定することがある)※3

ジョブ強制終了方法

JP1/AJSの強制終了

JP1/AJSの強制終了※2

JP1/AJSの強制終了

注※1 動作には影響ない。環境変数AJS_BJEX_STOPの設定は必要である。

注※2 ジョブログを表示させるにはtrapコマンドを定義する必要がある。

注※3 UNIXジョブの[スクリプトファイル名]にJP1/ASのジョブ定義スクリプトファイルを指定すると,JP1/AJSが環境変数SHELLにJP1/ASを設定する。EXEC要素内のPGM属性値に"*"の指定とEXEC要素の内容にシェルの指定をしても,シェルスクリプトとして実行できなくなる。環境変数SHELLにOS標準のシェルを設定する例を次に示す。次のどちらかの設定をする必要がある。
(1)JP1/ASのスクリプトによる設定方法

JP1/ASのジョブ定義スクリプトファイルに次の指定をすることで,環境変数SHELLにOS標準のシェルを設定してジョブを起動できる。

export SHELL=/bin/sh
bjexec ジョブ定義xmlファイル
(2)JP1/AJSのジョブ定義による設定方法

JP1/AJSのUNIXジョブによるジョブの定義を次のようにすることで,環境変数SHELLにOS標準のシェルを設定してジョブを起動できる。

[詳細定義−[UNIX Job]]画面の[定義]タブ

  • スクリプトファイル名:/opt/jp1as/bin/adshexec

  • パラメータ:ジョブ定義スクリプトファイル名,および実行時パラメータ

    サブミットジョブの場合,それぞれ-sc,-argオプションとなる。

(2) コマンドラインから起動する場合

JP1/AJSを使用せず起動することもできる。ただし,前提プログラムであるJP1/AJS およびJP1/BASE の組み込みが必要である。コマンドラインからバッチジョブの起動方法による強制終了の方法と制限事項を以下にまとめる。

表5‒2 コマンドラインからバッチジョブを起動した場合の強制終了の方法と制限事項

項目

バッチジョブの起動

直接実行する場合

OS標準のシェルを経由して起動

JP1/ASを経由して起動

制限事項

  • 日付世代番号指定機能が使用できない

  • ジョブログヘッダおよびSYSOUT管理ファイルにJP1の情報が出力されない

  • 標準入力を使用するプログラムを実行すると停止することがある

ジョブ強制終了方法

bjexecプロセスにSIGTERMを送る