5.2.1 バッチジョブの起動
バッチジョブ実行システムのバッチジョブは,JP1/AJSからシェルを経由して起動することやコマンドラインから起動することもできる。バッチジョブ業務で使用する場合は,JP1/AJSから直接またはシェルを経由して起動することを前提としている。コマンドラインからの実行は動作確認などで使用すること。
- 〈この項の構成〉
(1) JP1/AJSから起動する場合
JP1/AJSからバッチジョブ実行システムのバッチジョブを起動するには,次のどちらかのジョブを使う。
-
UNIXジョブ
実行するジョブをUNIXジョブに定義することで,ジョブネットからバッチジョブ実行サーバにジョブを入力できる。バッチジョブ実行システムのバッチジョブは,UNIXジョブのうちキュー属性だけに対応しており,キューレス属性には対応していない。
-
サブミットジョブ
ジョブ実行コマンド(jpqjobsubコマンド)を使ってジョブをキューに直接登録できる。
JP1/AJSからOS標準のシェル※を経由して起動する場合,JP1/AJSからバッチジョブ実行システムを強制終了したときジョブログが途中までしか表示されないことがある。これはシェルがバッチジョブ実行システムのジョブログ出力を待たずに終了してしまうためである。ジョブログをすべて表示させるためには,シェルでSIGTERMシグナルをトラップする必要がある。以下にシェルでSIGTERMシグナルをトラップする例を示す。
注※ AIXの場合ksh,Linuxの場合bash
シェルでSIGTERMシグナルをトラップする例
trap 'exit 255' TERM ・・・SIGTERMを受けると終了コード255で終了する bjexec /xml/gyomu1.xml
バッチジョブの起動方法による強制終了の方法と制限事項を以下にまとめる。
項目 |
バッチジョブの起動 |
||
---|---|---|---|
直接実行する場合 |
OS標準のシェルを経由して起動 |
JP1/ASを経由して起動 |
|
制限事項 |
なし |
|
|
ジョブ強制終了方法 |
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 の組み込みが必要である。コマンドラインからバッチジョブの起動方法による強制終了の方法と制限事項を以下にまとめる。
項目 |
バッチジョブの起動 |
||
---|---|---|---|
直接実行する場合 |
OS標準のシェルを経由して起動 |
JP1/ASを経由して起動 |
|
制限事項 |
|
||
ジョブ強制終了方法 |
bjexecプロセスにSIGTERMを送る |