ジョブネット起動時刻変更API/EE(Mp_JobschCtlStartTimeEx)について説明します。
記述形式
【Windows版】
#include "f3csbJobschControlEx.h" |
【UNIX版】
#include "jobschapiex.h" |
機能説明
本APIは、Systemwalker Operation Manager EEおよびGEEで、ジョブネットの起動時刻を取得または変更する機能を、C言語インタフェースから利用するためのインタフェースです。
起動時刻の取得では、指定されたジョブネットの起動時刻がget_timeパラメタで指定した領域に格納されます。
起動時刻の変更では、指定されたジョブネットは、起動時刻がset_timeパラメタで指定した値に変更され、変更後の起動時刻と起動日情報により起動予定日時が再スケジュールされます。
パラメタの説明
mode
本APIの動作モードを指定します。省略できません。
起動時刻を取得します。before_timeパラメタおよびset_timeパラメタは無視されます。本モードを使用するためには、ジョブネットが属するプロジェクトに対して、参照権以上を持つユーザでAPIを実行する必要があります。
起動時刻を変更します。get_timeパラメタは無視されます。本モードを使用するためには、ジョブネットが属するプロジェクトに対して、更新権または登録権を持つユーザでAPIを実行する必要があります。
get_time:
起動時刻を取得するjobsch_start_time構造体の領域を指定します。省略する場合はNULLを指定します。modeパラメタに0を指定した場合は、省略できません。modeパラメタに0を指定した場合で、本APIが正常終了した場合には、取得結果が構造体に格納されます。格納される値は、jobsch_start_time構造体のtimeパラメタの説明を参照してください。
before_time:
変更前の起動時刻を指定します。指定する値は、jobsch_start_time構造体のtimeパラメタの説明を参照してください。省略する場合はNULLを指定します。modeパラメタに1を指定した場合は、省略できません。指定された起動時刻の種類および起動時刻と、ジョブネットに指定されている起動時刻の種類および起動時刻を比較し、一致した場合のみ起動時刻を変更します。一致しなかった場合には、APIがエラー復帰します。
set_time:
設定する起動時刻を指定します。指定する値は、jobsch_start_time構造体のtimeパラメタの説明を参照してください。省略する場合はNULLを指定します。modeパラメタに1を指定した場合は、省略できません。
project_name:
操作するジョブネットの属するプロジェクト名を指定します。API実行ユーザの利用できるプロジェクトのプロジェクト名のみ指定できます。API実行ユーザの利用できるプロジェクトのうちジョブネットが登録されているプロジェクトが1つしかない場合に限り省略できます。省略する場合はNULLを指定します。
jobnet_name:
操作するジョブネット名を指定します。省略できません。
system_num:
操作対象のサブシステムを、0から9の範囲の番号で指定します。省略できません。
復帰値
復帰値 | 意 味 | 対 処 |
---|---|---|
0 | 正常終了しました。 | - |
4 | 指定のジョブネットの変更前の起動時刻が一致しません。 | 変更しようとするジョブネットと同じ起動時刻の種類および起動時刻を、before_timeに指定してください。 |
8 | 取得しようとしたジョブネットの起動条件が時刻起動ではありません。または、指定のジョブネットの起動条件が、変更しようとする起動時刻の種類と異なります。 | 取得対象のジョブネットには、起動時刻が設定されたジョブネットを指定してください。起動時刻を変更する場合は、set_timeに対象ジョブネットの起動時刻と同じ種類を指定してください。 |
12 | 指定のジョブネットはグループに属しています。 | グループに属さないジョブネットを指定してください。 |
16 | 指定のジョブネットは実行中、警告、または終了遅延です。 | ジョブネットの状態が変わってから再度実行してください。 |
24 | Systemwalkerのコード系と異なるコード系で動作しています。 | APIを呼び出すプログラムの実行環境を、Systemwalkerのコード系と同じコード系にしてください。 |
28 | ジョブスケジューラサービス/デーモンが動作していません。 | ジョブスケジューラサービス/デーモンを起動して、再度実行してください。 |
32 | パラメタの指定、または、ユーザの権限に誤りがあります。または、指定したプロジェクト、ジョブネットが存在しません。 | 必要に応じて以下の処置を行ってください。 |
36 | 致命的なエラーが発生しました。 | システムエラーが発生した可能性があります。イベントログ/SYSLOG を確認し、システムに異常がないか確認してください。異常があった場合は、保守情報収集ツールで“ジョブスケジューラ”の情報を採取し、富士通技術員に連絡してください。異常がない場合は一時的な問題と思われるため、再度実行してください。 |
40 | 指定のジョブネットは操作中または変更中です。 | ジョブネットの状態が変わってから再度実行してください。 |
jobsch_start_time構造体の形式
jobsch_start_time構造体の形式を以下に示します。
struct jobsch_start_time { int type; char rsv1[4]; char time[128]; char rsv2[24]; } ;
type:
起動時刻の種類を表す数値です。
値 | 種 別 |
---|---|
1 | 起動時刻が1つのみ指定されているジョブネット |
2 | 起動時刻が複数指定されているジョブネット |
3 | 間隔起動のジョブネット |
rsv1:
予約域です。使用しません。
time:
起動時刻を表す文字列です。起動時刻の種類によって、形式が異なります。
HHMM(時分)形式の4バイト(ヌル文字含め5バイト)の文字列です。
例)「0900」
HHMM(時分)形式の4バイトの文字列がコンマ (,)で区切られた最大29バイト(4バイト×6個 コンマ×5個、ヌル文字含め30バイト)の文字列です。
例)「0900,1100,1300,1500,1700」
HHMM,HHMM,n(開始時刻,終了時刻,起動間隔)形式の最大13バイト(ヌル文字含め14バイト)の文字列です。各項目はコンマ (,)で区切られます。開始時刻と終了時刻は、HHMM(時分)形式の4バイトの文字列です。起動間隔は、1から240(分)の1バイトから3バイトの文字列です。
例)「0900,1700,60」
rsv2:
予約域です。使用しません。
必要ファイル
ジョブネット起動時刻変更APIを使用するには、以下のファイルが必要となります。
Windows x86版
Systemwalker Operation Managerインストールディレクトリ\MpWalker.JM\lib\f3csbJobschControlEx.lib
Systemwalker Operation Managerインストールディレクトリ\MpWalker.JM\include\f3csbJobschControlEx.h
Windows x64版
Systemwalker Operation Managerインストールディレクトリ\MpWalker.JM\lib\f3csbJobschControlEx_x64.lib
Systemwalker Operation Managerインストールディレクトリ\MpWalker.JM\include\f3csbJobschControlEx_x64.h
Solaris 32bit版、Linux x86版共通
/opt/FJSVJOBSC/usr/lib/libjobschex.so
/opt/FJSVJOBSC/usr/include/jobschapiex.h
Solaris 64bit版
/opt/FJSVJOBSC/usr/lib/libjobschex_64.so
/opt/FJSVJOBSC/usr/include/jobschapiex_64.h
Linux x64版
/opt/FJSVJOBSC/usr/lib/libjobschex_x64.so
/opt/FJSVJOBSC/usr/include/jobschapiex_x64.h
実行に必要な権限
システム管理者、または対象のプロジェクトにアクセス権を持つユーザの権限が必要です。
注意事項
jobsch_start_time構造体内にある起動時刻に示した起動条件のジョブネットに対してのみ有効です。
起動時刻の種類を変更することはできません。
グループに属しているジョブネットの起動時刻を変更することはできません。
本APIは、タイムゾーンを正しく設定したプログラムで使用してください。
Systemwalker Operation Managerが動作しているロケールと異なるロケールを指定したプログラムから呼び出しを行った場合、本APIはエラー復帰します。
本APIのパラメタに文字コードを含む文字列を指定する場合、Systemwalker Operation Managerが動作しているLANGに合わせた文字コードで指定してください。
プログラム例
ジョブネット起動時刻変更APIのプログラム例を以下に示します。
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <locale.h> #include <string.h> #include "jobschapiex.h" main () { int ret; char t_str[8]; struct jobsch_start_time b_time, a_time; tzset (); setlocale (LC_ALL, ""); memset(&b_time, 0x00, sizeof(b_time)); ret = Mp_JobschCtlStartTimeEx ( 0, /* mode : GET */ &b_time, /* get start time */ NULL, /* NULL */ NULL, /* NULL */ "test", /* project name */ "net1", /* jobnet name */ 1); /* sub system number*/ if (ret == 0) { printf ("Start type is %d.\n", b_time.type); printf ("Start time is %s.\n", b_time.time); } else{ printf ("ERROR: get return code = %d\n", ret); exit(1); } memset(&a_time, 0x00, sizeof(a_time)); a_time.type = b_time.type; strcpy(a_time.time, b_time.time); strcat(a_time.time, ",1900"); ret = Mp_JobschCtlStartTimeEx ( 1, /* mode : CHANGE */ NULL, /* NULL */ &b_time, /* before time */ &a_time, /* set time */ "test", /* project name */ "net1", /* jobnet name */ 1); /* sub system number*/ if (ret == 0) { printf ("Change type is %d.\n", a_time.type); printf ("Change time is %s.\n", a_time.time); } else{ printf ("ERROR: set return code = %d\n", ret); exit(1); } exit(0); }