| Systemwalker Operation Manager リファレンスマニュアル - UNIX/Windows(R)共通 - | 
			目次
			索引
			![]()  
		 | 
	
| 第17章 API情報 | > 17.3 ジョブ実行制御API | 
ジョブ一覧情報獲得API(Mp_ListJob)について説明します。
ジョブ情報の一覧を獲得します。当関数発行元プロセスのユーザが所有するすべてのジョブの情報が獲得されます。システム管理者(Administratorsグループに属するユーザ)の場合、Systemwalker Operation Managerを導入しているサーバ内のすべてのジョブの情報が獲得されます。ただし、userforadminを指定した場合は、当該ユーザが所有するジョブの情報のみが獲得されます。
| 
 #include "f3cuapi.h"  | 
NULLを指定してください。
以下に示す処理モードを指定します。GETJOBを行った後、必ずFREEJOBを行ってください。
システム管理者(Administratorsグループに属するユーザ)が他人のジョブの状態のみを獲得する場合に指定します。状態の獲得対象ジョブの所有者名を指定してください。所有者名を指定しない場合はNULLを指定してください。
| 
 復帰値  | 
 意 味  | 
| 
 0以上  | 
 正常にジョブ情報の一覧が獲得されたことを示し、そのジョブ数が返却されます。“0”の場合は、該当するジョブが存在しないことを示します。  | 
| 
 -1  | 
 システムエラーが発生しました。  | 
| 
 -1000以下  | 
 ジョブ実行制御において、エラーが検出されたため、処理を中断しました。 なお、エラーメッセージ獲得APIを使用して、エラーメッセージを獲得することができます。  | 
引数が無効アドレスを指している場合、当関数は異常終了し、その動作は定義されません。
ジョブ情報構造体の形式を以下に示します。
当構造体は、INCLUDEファイル“f3cuapi.h”内に定義されます。
typedef struct _Mp_JOBINF_1{
  char      jobname[];        /* ジョブ名                */
  char      jobhost[];        /* 投入元ホスト名          */
  long      jobno;            /* ジョブ番号              */
  char      user[];           /* ジョブ所有利用者        */
  char      queue[];          /* キュー名                */
  long      jobtype;          /* ジョブ種類              */
  long      status;           /* ジョブ状態              */
  char      comment[];        /* 投入時に指定したコメント*/
}Mp_JOBINF_1
ジョブ名が設定されます。
投入元ホスト名が設定されます。
ジョブの番号が設定されます。
ジョブの所有利用者が設定されます。
キュー名が設定されます。
ジョブの種類が設定されます。設定されるジョブの種類を以下に示します。
| 
 値  | 
 種 類  | 
| 
 1  | 
 デマンドジョブ  | 
| 
 2  | 
 スケジュールジョブ  | 
ジョブの状態が設定されます。設定されるジョブの状態を以下に示します。
| 
 値  | 
 状 態  | 
| 
 1  | 
 実行待ち  | 
| 
 2  | 
 実行保留  | 
| 
 3  | 
 実行中  | 
| 
 4  | 
 出力保留  | 
投入時に指定したコメントが設定されます。
ジョブ一覧情報獲得APIのプログラム例を以下に示します。
#include <windows.h>
#include <stdio.h>
#include "f3cuapi.h"
int main (int argc, char **argv)
{
        Mp_JOBINF_1 *jobinf = 0;
        Mp_JOBINF_1 *jinf = 0;
        long mode;
        long idx;
        long rtn = 0;
        char errmsg[256+1];
        /*
         * initialization working area
         */
        memset(errmsg, 0x00, sizeof(errmsg));
        mode = GETJOB;
        /*
         *  call Mp_ListJob() API
         */
        rtn = Mp_ListJob (NULL, mode, &jobinf, NULL);
        /*
         * check return code of Mp_ListJob() API
         */
        if (rtn == -1) {
                printf ("GetLastError() is %d.\n", GetLastError());
                return (1);
        } else if (rtn <= -1000) {
                printf ("Error code is %d.\n", rtn);
                Mp_GetMJESerror (errmsg);
                printf ("errmsg = %s\n", errmsg);
                return (1);
        } else if (rtn == 0) {
                printf ("Job is nothing.\n", rtn);
                return (0);
        }
        jinf = jobinf;
        printf("job name             jobno user name            status\n");
        for (idx = 0; idx < rtn; idx++) {
                printf("%20.20s %5.5d %20.20s ",
                        jinf->jobname, jinf->jobno, jinf->user);
                switch(jinf->status) {
                case 1  :
                        printf("waiting   ");
                        break;
                case 2  :
                        printf("holding   ");
                        break;
                case 3  :
                        printf("running   ");
                        break;
                case 4  :
                        printf("outhold   ");
                        break;
                }
                printf("\n");
                jinf++;
        }
        mode = FREEJOB;
        /*
         *  call Mp_ListJob() API
         */
        Mp_ListJob (NULL, mode, &jobinf, NULL);
        return(0);
}
			目次
			索引
			![]()  
		 |