Hitachi

JP1 Version 12 JP1/Automatic Job Management System 3 設計ガイド(業務設計編)


7.10.3 ジョブの終了コードを確認する

ジョブの終了コードは,JP1/AJS3 - Viewの[モニタ詳細−[アイコン名]]ダイアログボックス,またはjpqjobgetコマンドで出力したジョブ情報のEXITCODEなどで確認できます。ジョブの終了コードには,通常,正常終了では「0」,異常検出終了では起動したジョブプロセスの終了コードが設定されます。ただし,次の表に示す場合は,JP1/AJS3によって終了コードが設定されます。

表7‒13 JP1/AJS3によって終了コードが設定される条件とその終了コード

条件

JP1/AJS3によって設定される終了コード

PCジョブ,UNIXジョブ,フレキシブルジョブ,HTTP接続ジョブ,アクションジョブ,カスタムジョブ,またはJP1/AJS3をホストに指定したQUEUEジョブで,次の状態になる場合。

  • 起動失敗

  • 強制終了(打ち切り時間指定による打ち切り終了も含みます)

  • 異常検出終了

-1

UNIXジョブで,JP1/AJS3で予期しないエラーが発生した場合。

255

注※

ジョブプロセスが終了したあとのJP1/AJS3側のあと処理で何か問題が発生した場合(例えば,マネージャーホストへの結果ファイルの転送失敗など)は,ジョブプロセスのリターンコードがJP1/AJS3によって「-1」に上書きされ,異常検出終了になります。

注意事項
  • PCジョブおよび実行ホストがWindowsのフレキシブルジョブの場合は,起動したジョブプロセス自身がリターンコードとして「-1」を返すこともできます。また,UNIXジョブおよび実行ホストがLinuxのフレキシブルジョブでは負の値で終了すると,終了コードは,256 + 負の値と扱われます。例えば,ジョブプロセスが「-1」で終了した場合,終了コードは,256 - 1 = 255となります。したがって,ジョブプロセスによって設定された終了コードなのか,JP1/AJS3によって設定された終了コードなのかを判別する必要がある場合は,ユーザーアプリケーションなどで設定する終了コードには「-1」および「255」を使用しないようにしてください。

  • UNIXジョブおよび実行ホストがLinuxのフレキシブルジョブの場合は,ジョブの実行に先立ってログインスクリプトが実行されます。したがって,ログインスクリプト内で処理が終了した場合は,ログインスクリプトで設定された終了コードが設定されます。ログインスクリプト内で処理が異常終了することがないようにしてください。なお,ログインスクリプトの変更方法については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 13.4.2 ログインスクリプトの変更」を参照してください。

  • フレキシブルジョブの場合に,終了判定方法で次のどれかを選択し,選択した終了条件が満たさなかったときは,終了コードは「1」になります。

    ・[ファイルが存在すれば正常]

    ・[ファイルが更新されれば正常]

ジョブの終了コードには,ユーザーアプリケーションやJP1/AJS3以外にOSが設定するものがあります。代表的な終了コードを次の表に示します。これらの終了コードはOSのアップグレードなどによって変更になる場合もあるため,使用しているOSの技術情報を確認してください。

表7‒14 OSが設定するジョブの終了コードの例

OS

終了コード

原因

対処方法

Windows

259または-1

結果ファイルのオープンに失敗していることが考えられます。この場合は,同時に次に示すどちらかのメッセージが出力されます。

  • 「KAVU3284-W 内部処理(論理ホスト名)でシステムコールエラーが発生しました(要因個所:要因個所,要因番号1:0x2013000a,システムコール名:CreateFile,要因番号2:要因番号2)」

  • 標準エラー出力に「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」

ジョブとして実行するプログラム内でオープンするファイル,またはバッチファイル内のリダイレクションでオープンするファイルを,ジョブを登録するときの標準出力ファイル,または標準エラー出力ファイルとして指定しないでください。ただし,プログラム内で関数を使用してオープンする場合に限って,共有の読み取りまたは共有の書き込みを許可する設定でオープンすることによって回避することもできます。

128

デスクトップヒープの領域不足が考えられます。この場合は,同時に次に示すどちらかのメッセージが出力されます。

  • 「XXXX.XXX - アプリケーションエラー:アプリケーションを正しく初期化できませんでした。」

  • 「XXXX.XXXの初期化に失敗しました。」

デスクトップヒープ領域の消費を少なくしたい場合は,ジョブを実行するユーザーのアカウントを,「JP1/AJS3サービス」のアカウントと同じにして運用してください。

UNIX

シグナル番号+128

ジョブプロセスから起動したプログラムがシグナルを受信したことが考えられます。

次に示すどちらかの方法で対処してください。

  • ジョブプロセスから起動するプログラムがシグナルを受信しないようにする。

  • ジョブプロセスから起動するプログラムにシグナルハンドラーなどを設定して,シグナルの種類によって終了コードを切り分けるなどの処理を追加する。

注※

ジョブプロセス自身がシグナルを受信すると,実行先サービスが[通常]のジョブは,終了コード「-1」で終了状態「強制終了」になります。また,実行先サービスが[キューレス]のジョブは,終了コード「-1」で終了状態「異常検出終了」になります。

〈この項の構成〉

(1) フレキシブルジョブの終了コード

フレキシブルジョブを実行したときの終了コードを次の表に示します。

なお,フレキシブルジョブの一斉実行を使用している場合,複数ある宛先エージェントでの終了コードのうち,最も大きい値が終了コードになります。ただし,終了コードが-1の宛先エージェントがあるとき,終了コードは-1になります。

表7‒15 フレキシブルジョブの終了コード

終了コード

内容

対応するメッセージ

ユーザーアプリケーション(実行ファイル)が設定する終了コード

終了判定が「常に正常」,「常に異常」および「しきい値による判定」のとき,JP1/AJS3の処理が正常に終了した。

KAVS8138-I

KAVS8140-I

0

終了判定が「ファイルが存在すれば正常」または「ファイルが更新されれば正常」のとき,判定条件を満たした。

1

終了判定が「ファイルが存在すれば正常」または「ファイルが更新されれば正常」のとき,判定条件を満たさなかった。

-1

監視終了時間を超過した。

KAVS8101-E

リソースが不足している。

KAVS8102-E

JP1/AJS3 Autonomous Agent Messengerサービスと通信不可。

KAVS8100-E

システムエラー。

KAVV8106-E

実行ファイルが存在しない。

KAVS8108-E

実行ファイルに対して権限がない。

KAVS8109-E

(2) HTTP接続ジョブの終了コード

HTTP接続ジョブを実行したときの終了コードを次の表に示します。

表7‒16 HTTP接続ジョブ実行時の終了コード一覧

終了コード

内容

対応するメッセージ

0

終了コードを指定している場合,正常終了(0に指定したHTTPステータスコード)。

終了コードを指定していない場合,正常終了(HTTPステータスコード200)。

KAVS8050-I

1〜9

終了コードを指定している場合,正常終了で指定したHTTPステータスコードに対応する終了コード。

KAVS8050-I

10

正常終了(終了コード指定に定義していないHTTPステータスコードで,かつHTTPステータスコードが200以外)。

KAVS8050-I

20

タイムアウトが発生した。

KAVS8061-E

30

接続先ホストの名前解決に失敗した。

KAVS8054-E

40

ファイルアクセスでその他のエラーが発生した。

KAVS8053-E

60

パラメーターエラー。

ジョブの定義項目に誤りがある(不正な長さ,不正な値)。

KAVS8051-E

64

接続設定ファイルの構文エラー。

KAVS8052-E

70

URLの指定に誤りがある。

URLの参照先にリソースがない。

GETメソッド呼び出し時の送信情報ファイルに改行コードが含まれている。

KAVS8060-E

80

ファイルが存在しない。

ディレクトリを指定した。

KAVS8053-E

81

ファイルアクセスで権限エラーが発生した。

ディレクトリを指定した。

KAVS8053-E

90

環境設定パラメーターの読み込みに失敗した。

KAVS8063-E

101

接続先ホストへの接続に失敗した。

KAVS8056-E

102

接続先ホストとの通信でエラーが発生した。

KAVS8057-E

106

レスポンスデータが接続設定ファイルで指定した最大ファイルサイズを超えている。

KAVS8059-E

110

HTTPS認証の処理でエラーが発生した。

  • HTTPS認証に失敗

  • ハンドシェイク失敗

  • 証明書が不正

  • 証明書ファイルのアクセスエラー

  • CRLファイルが不正

  • CRLファイルのアクセスエラー

  • 発行元(CN(Common Name)またはSAN(subjectAltName))のチェックに失敗

  • 証明書の期限切れ

  • 証明書の失効

KAVS8062-E

120

メモリー不足が発生した。

KAVS0902-E

124

予期せぬエラーが発生した。

HTTP接続ジョブの実行に必要なライブラリがロードできなかった。

KAVS8058-E

KAVS0990-E

(3) イベントジョブおよびアクションジョブの終了コード

イベントジョブおよびアクションジョブが,実行しているとき(ジョブプロセスが起動されてから終了するまで)に設定される終了コードについては,「付録A イベントジョブおよびアクションジョブ実行時の戻り値一覧」を参照してください。