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); }
目次 索引 |