Systemwalker Operation Manager リファレンスマニュアル - UNIX/Windows(R)共通 -
目次 索引 前ページ次ページ

第18章 出口情報

18.1 ジョブネット正常終了/異常終了出口

ジョブスケジューラに登録してあるジョブネットが正常終了、疑似正常、異常終了または強制終了した場合に呼び出される、出口プログラムについて説明します。

【Windows版】

ジョブネットが正常終了または疑似正常終了したときは、normalexit.bat、normalexit.exeの順に出口プログラムが検索され、見つかった出口プログラムが呼び出されます。normalexit.batが見つかった場合、normalexit.exeが存在しても呼び出されません。

ジョブネットが異常終了または強制終了したときは、jobschexit.bat、jobschexit.exeの順に出口プログラムが検索され、見つかった出口プログラムが呼び出されます。jobschexit.batが見つかった場合、jobschexit.exeが存在しても呼び出されません。

利用者がこれらの出口を利用して独自の処理を行いたい場合は、同名の出口プログラムを作成して、Systemwalker Operation Managerをインストールしたディレクトリ配下のMpWalker.JM\binディレクトリに格納してください。

【UNIX版】

ジョブネットが正常終了または疑似正常したときは、jobsch.exit.normalの出口プログラムが検索され、見つかった出口プログラムが呼び出されます。

ジョブネットが異常終了または強制終了したときは、jobsch.exitの出口プログラムが検索され、見つかった出口プログラムが呼び出されます。

利用者がこれらの出口を利用して独自の処理を行いたい場合は、同名の出口プログラムを作成して、ジョブスケジューラをインストールしたディレクトリのbinディレクトリに格納してください。

■出口プログラムに渡されるパラメタ

出口プログラムに渡されるパラメタは、以下のとおりです。

argc : パラメタの数(7)                (注1)
argv[0] : 出口プログラム名
argv[1] : ジョブネットの登録されているプロジェクト名
argv[2] : ジョブネット名
argv[3] : ジョブネット名称
argv[4] : ジョブネット内ジョブの終了コードの最大値(文字列)
argv[5] : ジョブネット内ジョブ数(文字列)
argv[6] : 一時ファイル名
argv[7] : サブシステム番号(文字列)          (注2)

注1)
Systemwalker Operation Manager EEの場合、パラメタの数は8になります。
注2)
Systemwalker Operation Manager EEのパラメタです。

一時ファイルには、ジョブネット内の個々のジョブについての情報が、以下のように格納されます。ジョブ名/終了コード/状態がジョブ1個分の情報です。

ジョブ名
終了コード
状態
ジョブ名
終了コード
状態
……………
ジョブ名
終了コード
状態

上図の各情報について説明します。

ジョブ名:
実行属性によって、以下の内容が格納されます。
実行属性が“ジョブ実行制御”の場合:
ジョブ名です。ジョブ名が省略されている場合は、コマンド名です。
実行属性が“Interstage”の場合:
ジョブのワークユニット名です。
実行属性が“PowerAIM”の場合:【UNIX版】
ジョブのワークユニット名です。
実行属性が“旧バージョン互換(旧・標準)”の場合:【UNIX版】
コマンド名です。
終了コード:
ジョブの終了コード(0〜256までの文字)です。未実行のジョブの終了コードは0です。
状態:
ジョブの状態を以下の7つのうちいずれかの文字列で表します。
normal_end:
正常終了したことを示します。
pseudo-normal:
疑似正常終了したことを示します。
abnormal_end:
異常終了したことを示します。
canceled:
強制終了したことを示します。
not_executed:
未実行であったことを示します。
paused:
停止状態であることを示します。
disabled:
無効状態であることを示します。

一時ファイルは、以下のディレクトリに作成されます。

Windows版:
ジョブスケジューラのデータベースディレクトリ配下のworkディレクトリ。正常終了出口のファイル名はNMLnnn.tmp(nnnはシステムが付加)、異常終了出口のファイル名はNETnnn.tmp(nnnはシステムが付加)の形式で作成されます。
Solaris版、HP版:
/var/tmpディレクトリ
AIX版、Linux版およびLinux for Itanium版:
/tmpディレクトリ

一時ファイルは、ジョブスケジューラ側では削除しないので、出口プログラムで削除する必要があります。

出口が登録されていない場合は、一時ファイルは作成されません。

◆パス状態のジョブについて

先行ジョブの終了コードによる後続ジョブの起動条件を指定している場合に、パス状態で終了したジョブは、以下のようになります。

■注意事項

■プログラム例

ジョブネット異常終了出口のプログラムを以下に示します。

Windows版の例

/*  ジョブネット異常終了時に、"KANRI”サーバに以下のメッセージを送信する
              ジョブネット名 is abended !! code = 終了コード*/
#include <stdio.h>
#include <process.h>

main(int argc, char *argv[])
{
    char cmdline[256];

    sprintf(cmdline,
            "NET SEND KANRI %s is abended !! code = %s",
            argv[2],    //ジョブネット名
            argv[4]);   //終了コード

    system(cmdline);

    unlink(argv[6]);    // temp ファイルを削除

    exit(0);
}

Solaris版の例

/*
  コンソールに、ジョブネットが異常終了したというメッセージが
  ジョブネット名および終了コードと共に出力される、ジョブネット
  異常終了出口のプログラム例(Solaris版) 
*/

#include <syslog.h> 
#include <stdio.h>

main(int argc, char **argv) 
{
    openlog("jobsch", LOG_CONS, LOG_USER);
    syslog(LOG_WARNING, 
        "WARNING: jobnet abnormal end. project=%s, net_name=%s, net_comment=%s, net_code=%s", 
        argv[1], argv[2], argv[3], argv[4]);
    closelog(); 

    unlink(argv[6]);
    exit(0);
}

目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 1995-2007