| Systemwalker Operation Manager リファレンスマニュアル - UNIX/Windows(R)共通 - | 
| 目次
			索引    | 
| 第18章 出口情報 | 
ジョブスケジューラに登録してあるジョブが終了した場合に呼び出される、出口プログラムについて説明します。
jobexit.bat、jobexit.exeの順に出口プログラムが検索され、見つかった出口プログラムが呼び出されます。jobexit.batが見つかった場合、jobexit.exeが存在しても呼び出されません。
利用者がこれらの出口を利用して、独自の処理を行いたい場合は、同名の出口プログラムを作成して、Systemwalker Operation Managerをインストールしたディレクトリ配下のMpWalker.JM\binディレクトリに格納してください。
jobsch.job.exitの出口プログラムが検索され、見つかった出口プログラムが呼び出されます。
利用者がこれらの出口を利用して、独自の処理を行いたい場合は、同名の出口プログラムを作成して、ジョブスケジューラをインストールしたディレクトリのbinディレクトリに格納してください。
出口プログラムに渡されるパラメタは、以下のとおりです。
| argc  : パラメタの数(5)               (注1) | 
一時ファイルには、ジョブ情報が以下のように格納されます。
| ジョブ名 | 
上図の各情報について説明します。
ジョブとして子ジョブネットが登録されている場合、子ジョブネットのジョブネット名が格納されます。
一時ファイルは、以下のディレクトリに作成されます。
一時ファイルは、ジョブスケジューラ側では削除しないので、出口プログラムで削除する必要があります。出口が登録されていない場合は、一時ファイルは作成されません。
先行ジョブの終了コードによる後続ジョブの起動条件を指定している場合に、パス状態で終了したジョブは、ジョブ終了出口が起動されません。
ジョブ終了出口のプログラム例を以下に示します。
/*  ジョブ終了時に、"KANRI”サーバに以下のメッセージを送信する
      ジョブ名 is ended !! code = 終了コード
*/
#include <stdio.h>
#include <string.h> 
#include <process.h>
main(int argc, char *argv[])
{
    FILE *fp; 
    char jobname[100];
    char jobcode[100];
    char cmdline[256];
    fp = fopen(argv[4], "r"); 
    fgets(jobname, 99, fp); 
    jobname[strlen(jobname)] = '\0';
    fgets(jobcode, 99, fp); 
    jobcode[strlen(jobcode)] = '\0';
    fclose(fp); 
    sprintf(cmdline,
            "NET SEND KANRI %s is ended !! code = %s",
            jobname,    //ジョブ名
            jobcode);   //終了コード
    system(cmdline);
    unlink(argv[4]);    // temp ファイルを削除
    exit(0);
}
/*
  コンソールに、ジョブが終了したというメッセージが、ジョブ名および
  終了コードと共に出力される、ジョブ終了出口のプログラム例(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);
}
| 目次
			索引    |