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

第17章 API情報> 17.3 ジョブ実行制御API

[EE]
17.3.17 キュー一覧情報獲得API/EE【Windows版】

キュー一覧情報獲得API/EE(Mp_ListQueue_Ex)について説明します。

■機能説明

Systemwalker Operation Manager EEで、キュー情報の一覧を獲得します。

■記述形式

#include "f3cuapi.h"
long Mp_ListQueue_Ex (char *rhost,
            long mode,
            struct Mp_QUEUEINF_1 *queueinf[ ],
            int system_num)

■パラメタの説明

rhost

NULLを指定してください。

mode

以下に示す処理モードを指定します。GETQSTを行った後、必ずFREEQSTを行ってください。

GETQST:
キュー一覧情報を獲得します。
FREEQST:
GETQSTで獲得したキュー一覧情報領域を開放します。

queueinf[ ]

GETQSTの場合:
キュー情報構造(Mp_QUEUEINF_1)配列のアドレスを通知する領域のアドレスを指定します。
FREEQSTの場合:
GETQSTで返却されたジョブ情報構造体の配列のアドレスを通知した領域のアドレスをそのまま指定してください。また、GETQSTを行った後FREEQSTを行うまでの間、該当領域の内容を変更しないようにしてください。

system_num

操作対象のサブシステムを、0から9の範囲の番号で指定します。

■復帰値

復帰値

意 味

1以上

正常にキュー情報の一覧が獲得されたことを示し、そのキューの数が返却されます。

-1

システムエラーが発生しました。

-1000以下

ジョブ実行制御において、エラーが検出されたため、処理を中断しました。 なお、エラーメッセージ獲得APIを使用して、エラーメッセージを獲得することができます。

■注意事項

引数が無効アドレスを指している場合、当関数は異常終了し、その動作は定義されません。

■キュー情報構造体(Mp_QUEUEINF_1)の形

キュー情報構造体の形式を以下に示します。

当構造体は、INCLUDEファイル“f3cuapi.h”内に定義されます。

 

typedef struct _Mp_QUEUEINF_1 { 
  char      queuename[];        /*キュー名             */ 
  long      queuetype;          /*キュー種別           */ 
  char      status;             /*キュー状態           */ 
  long      maxjob;             /*最大投入可能ジョブ数 */ 
  long      maxexec;            /*最大実行可能ジョブ数 */ 
  long      elapsed;            /*経過時間制限値(秒) */ 
  long      dfltprty;           /*デフォルト優先順位   */ 
  long      dfltdprty;          /*デフォルト優先度     */ 
  long      job_wait;           /*実行待ちジョブ数     */ 
  long      job_hold;           /*保留中ジョブ数       */ 
  long      job_run;            /*実行中ジョブ数       */ 
  char      hostgrp[];          /*分散ホストグループ名 */ 
} Mp_QUEUEINF_1

以下に項目ごとの説明を記述します。

queuename

キュー名が設定されます。

queuetype

キューの種別が設定されます。設定されるキューの種別を以下に示します。

種 別

1

ローカルキュー

2

分散実行キュー

status

キューの状態が設定されます。設定されるキューの状態を以下に示します。

状 態

1

稼働中

2

停止中

maxjob

最大投入可能ジョブ数が設定されます。

maxexec

最大実行可能ジョブ数が設定されます。

elapsed

経過時間制限値が秒単位で設定されます。

dfltprty

デフォルト優先順位が設定されます。

dfltdprty

デフォルト優先度が設定されます。

job_wait

APIを呼び出した時点での実行待ちジョブ数が設定されます。

job_hold

APIを呼び出した時点での保留中ジョブ数が設定されます。

job_run

APIを呼び出した時点での実行中ジョブ数が設定されます。

hostgrp

分散ホストグループ名が設定されます。ローカルキューの場合は、NULLが設定されます。

■プログラム例

キュー一覧情報獲得API/EEのプログラムを以下に示します。

 

#include <windows.h>
#include <stdio.h>
#include "f3cuapi.h"

int main (int argc, char **argv)
{

        Mp_QUEUEINF_1 *queinf = 0;
        Mp_QUEUEINF_1 *qinf = 0;
        int system_num;

        long mode;
        long idx; 
        long rtn = 0;
        char errmsg[256+1]; 

        /*
         * initialization working area
         */ 
        memset(errmsg, 0x00, sizeof(errmsg)); 

        mode = GETQST;
        /*
         *  call Mp_ListQueue_Ex() API 
         */ 
        system_num = 0;
        rtn = Mp_ListQueue_Ex (NULL, mode, &queinf, system_num); 

        /*
         * check return code of Mp_ListQueue_Ex() 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); 
        }

        qinf = queinf;

        printf("queue name      wait  hold  run   status\n");
        for (idx = 0; idx < rtn; idx++) {

                printf("%15.15s %5.5d %5.5d %5.5d ",
                        qinf->queuename, qinf->job_wait, qinf->job_hold,
                        qinf->job_run);
                switch(qinf->status){
                case 1  : 
                        printf("active  "); 
                        break;
                case 0  : 
                default : 
                        printf("inactive"); 
                        break;
                }
                printf("\n"); 
                qinf++;

        }

        mode = FREEQST; 

        /*
         *  call Mp_ListQueue_Ex() API 
         */ 
        Mp_ListQueue_Ex (NULL, mode, &queinf, system_num); 

        return(0);

}

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

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