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

第11章 出口情報

11.3 ジョブ終了出口

ジョブスケジューラに登録してあるジョブが終了した場合に呼び出される、出口プログラムについて説明します。

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

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

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

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

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

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

一時ファイルは、/var/tmpディレクトリに作成されます。(AIX版については、/tmpディレクトリに作成されます。)

一時ファイルには、ジョブ情報が以下のように格納されます。

ジョブ名
終了コード
状態

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

ジョブ名:
実行属性によって、以下の内容が格納されます。

ジョブとして子ジョブネットが登録されている場合、子ジョブネットのジョブネット名が格納されます。

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

一時ファイルは、ジョブスケジューラ側では削除しないので、出口プログラムで削除する必要があります。出口が登録されていない場合は、一時ファイルは作成されません。

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

先行ジョブの終了コードによる後続ジョブの起動条件を指定している場合に、パス状態で終了したジョブは、ジョブ終了出口が起動されません。

■注意事項

■プログラム例

ジョブ終了出口のプログラム(Solaris版)を以下に示します。

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

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

main(int argc, char **argv) 
{
    FILE      *fp;
    char      jobname[100]; 
    char      jobcode[100]; 

    memset(jobname, 0x00, sizeof(jobname)); 
    memset(jobcode, 0x00, sizeof(jobcode)); 

    fp = fopen(argv[4], "r"); 
    fgets(jobname, sizeof(jobname), fp);
    jobname[strlen(jobname)-1] = '\0';
    fgets(jobcode, sizeof(jobcode), fp);
    jobcode[strlen(jobcode)-1] = '\0';
    fclose(fp); 

    openlog("jobsch", LOG_CONS, LOG_USER);
    syslog(LOG_WARNING, 
        "WARNING: job end. project=%s, net_name=%s, net_comment=%s, job_name=%s, job_code=%s",
        argv[1], argv[2], argv[3], jobname, jobcode); 
    closelog(); 

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

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

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