ページの先頭行へ戻る
Systemwalker Operation Manager  リファレンスマニュアル
Systemwalker

19.10 デマンドジョブ終了出口

デマンドジョブが終了した場合に呼び出される、出口プログラムについて説明します。

Windows版】

mjesexit.bat、mjesexit.exeの順に出口プログラムが検索され、見つかった出口プログラムが呼び出されます。mjesexit.batが見つかった場合、mjesexit.exeが存在しても呼び出されません。

利用者がこれらの出口を利用して、独自の処理を行いたい場合は、同名の出口プログラムを作成して、以下のディレクトリに格納してください。

Systemwalkerインストールディレクトリ\ MpWalker.JM\bin

UNIX版】

mjes.job.exitの出口プログラムが検索され、見つかった出口プログラムが呼び出されます。

利用者がこれらの出口を利用して、独自の処理を行いたい場合は、同名の出口プログラムを作成して、以下のディレクトリに格納してください。

Solaris/Linux

/opt/FJSVMJS/usr/lib/mjes

HP-UX

/opt/FHPMJS/usr/lib/mjes

AIX

/opt/FAIXMJS/usr/lib/mjes

出口プログラムには、実行権が設定されている必要があります。実行権が設定されていないと呼び出されません。

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

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

argc : パラメタの数(9)
argv[0] : 出口プログラム名
argv[1] : ジョブ名
argv[2] : ジョブ番号(文字列)
argv[3] : ジョブが実行された実行サーバのホスト名
argv[4] : ジョブが実行されたキュー名
argv[5] : ジョブに指定されたコメント
argv[6] : ジョブの終了コード(文字列)
argv[7] : ジョブの標準出力ファイルのファイル名
argv[8] : ジョブの標準エラー出力ファイルのファイル名
argv[9] : サブシステム番号(文字列)                    (注1)

注1)

Systemwalker Operation Manager EEのパラメタです。SE版では必ず 0 が設定されます。

注意事項

プログラム例

デマンドジョブ終了出口のプログラム例を以下に示します。

Windows版の例

/*
   ジョブの終了コードが"0"以外の場合に、"KANRI"サーバに以下の
   メッセージを送信します。
     ジョブ名 is ended !! code = 終了コード
 */
#include <stdio.h>
#include <string.h>
#include <process.h>

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

    job_code = atoi(argv[6]);

    if (job_code != 0) {
        sprintf(cmdline,
                "NET SEND KANRI %s is ended !! code = %s",
                argv[1],  //ジョブ名
                argv[6]); //終了コード

        system(cmdline);
    }

    exit(0);
}

Solaris版の例

/*
   ジョブの終了コードが“0”以外の場合に、コンソールにメッセージを
   出力します。出力する情報は、ジョブ名、ジョブ番号、およびジョブの
   終了コードの3つです。
 */

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

main(int argc, char **argv) 
{
    int job_code = 0;

    job_code = atoi(argv[6]);

    if (job_code != 0) {
        openlog("mjes.job.exit", LOG_CONS, LOG_USER);
        syslog(LOG_WARNING, "WARNING: job end. job_name=%s, job_number=%s,
                            job_code=%s", argv[1], argv[2], argv[6]);
        closelog(); 
    }
    exit(0);
}