10.4.1 es_rtm_init(INIT要求)
形式:ANSI Cの形式
#include <esrtm.h> int es_rtm_init(ESRTM_INITPARAM *initparam_pt, ESLONG flags) typedef struct es_rtm_initparam_t{ /*INITパラメタ構造体 */ char adapter_id[32]; /*アダプタ識別子 */ ESRTM_DIR *dir_pt; /*DIRパラメタ構造体アドレス */ ESLONG dir_param_num; /*DIRパラメタ数 */ char yobi1[4]; /*予備 */ ESRTM_RANGE *range_param_pt;/*RANGEパラメタ構造体アドレス */ ESRTM_SELECT *select_param_pt;/*SELECTパラメタ構造体アドレス */ ESLONG select_param_num; /*SELECTパラメタ数 */ char yobi[188]; /*予備 */ char system_inf[1024]; /*HSIC情報 */ } ESRTM_INITPARAM; typedef struct es_rtm_dir_t{ /*DIRパラメタ構造体 */ char dirpath[1024]; /*稼働情報ファイル格納ディレクトリ */ char yobi[32]; /*予備 */ } ESRTM_DIR; typedef struct es_rtm_range_t{ /*RANGEパラメタ構造体 */ char start_time[16]; /*開始時刻 */ char end_time[16]; /*終了時刻 */ ESULONG get_day_num; /*取得日数 */ char yobi[208]; /*予備 */ ESULONG system_inf1; /*HSIC情報 */ ESULONG system_inf2; /*HSIC情報 */ ESULONG system_inf3; /*HSIC情報 */ } ESRTM_RANGE; typedef struct es_rtm_select_t{ /*SELECTパラメタ構造体 */ ESULONG protocol; /*プロトコル種別 */ char yobi1[4]; /*予備 */ ESRTM_SYSNAME *sysname_pt /*SYSNAMEパラメタ構造体アドレス */ ESRTM_TELKEY *telkey_pt; /*TELKEYパラメタ構造体アドレス */ ESRTM_USERKEY *userkey_pt; /*USERKEYパラメタ構造体アドレス */ ESRTM_LOCATION *location_pt; /*LOCATIONパラメタ構造体アドレス */ ESRTM_ALERT *alert_pt; /*ALERTパラメタ構造体アドレス */ ESRTM_RESPONSE *response_pt; /*RESPONSEパラメタ構造体アドレス */ char yobi[188]; /*予備 */ ESULONG system_inf1; /*HSIC情報 */ ESULONG system_inf2; /*HSIC情報 */ ESULONG system_inf3; /*HSIC情報 */ } ESRTM_SELECT; typedef struct es_rtm_sysname_t{ /*SYSNAMEパラメタ構造体 */ char name[32]; /*システム名 */ char yobi[224]; /*予備 */ } ESRTM_SYSNAME; typedef struct es_rtm_telkey_t{ /*TELKEYパラメタ構造体 */ char key[64]; /*電文キー */ char yobi[192]; /*予備 */ } ESRTM_TELKEY; typedef struct es_rtm_userkey_t{ /*USERKEYパラメタ構造体 */ unsigned char key[64]; /*検索キー */ ESULONG key_type; /*検索対象種別 */ ESULONG key_size; /*検索キーサイズ */ char yobi[184]; /*予備 */ } ESRTM_USERKEY; typedef struct es_rtm_location_t{ /*LOCATIONパラメタ構造体 */ unsigned char key[64]; /*検索キー */ ESULONG key_type; /*検索対象種別 */ ESULONG key_size; /*検索キーサイズ */ ESULONG key_location; /*ロケーション */ char yobi[180]; /*予備 */ } ESRTM_LOCATION; typedef struct es_rtm_alert_t{ /*ALERTパラメタ構造体 */ ESULONG alert_type; /*アラート種別 */ char yobi[252]; /*予備 */ } ESRTM_ALERT; typedef struct es_rtm_response_t{ /*RESPONSEパラメタ構造体 */ ESULONG response_time; /*応答時間 */ char yobi[252]; /*予備 */ } ESRTM_RESPONSE;
es_rtm_initのパラメタとアドレスを次に示します。
機能
稼働情報抽出ユティリティの初期化要求(INIT要求)を行います。
INIT要求では、GET要求、およびCOUNT要求の検索条件を設定します。
次の検索条件については、インデクスを利用して検索するため、検索結果をすぐに返却できます。
-
RANGEパラメタ構造体の開始時刻、終了時刻、取得日数
UAPが設定するパラメタ項目:initparam_pt
INITパラメタ構造体のアドレスを設定してください。
INITパラメタ構造体に次の情報を設定してください。
- ■アダプタ識別子
-
アダプタ識別子を26文字以内で設定してください。文字列の最後には、null文字を設定してください。このnull文字は文字列の長さに数えません。
アダプタ連携関連定義のadapter_idプロパティに指定したアダプタ識別子を設定してください。
- ■DIRパラメタ構造体アドレス
-
DIRパラメタ構造体のアドレスを設定してください。
DIRパラメタ構造体に次の情報を設定してください。
- ■稼働情報ファイル格納ディレクトリ
-
稼働情報管理ファイルと稼働情報ファイルを格納したディレクトリを絶対パス名で210バイト以内で設定してください。文字列の最後には、null文字を設定してください。このnull文字は文字列の長さに数えません。
稼働情報ファイル格納ディレクトリの重複チェックは行いません。
- ■DIRパラメタ数
-
稼働情報ファイル格納ディレクトリを設定したDIRパラメタ構造体の数を1~16までの範囲で設定してください。
- ■RANGEパラメタ構造体アドレス
-
RANGEパラメタ構造体のアドレスを設定してください。
本パラメタを省略するときは、NULLを設定してください。
RANGEパラメタ構造体に次の情報を設定してください。開始時刻、終了時刻、取得日数のどれかを設定する必要があります。稼働情報の検索対象有無については、要求電文の受信時刻を基に決定します。
- ■開始時刻
-
検索対象とする開始時刻をYYYYMMDDHHMMSSの形式の文字列で設定してください。開始時刻以降の稼働情報が対象となります。
文字列の最後には、null文字を設定してください。このnull文字は文字列の長さに数えません。
開始時刻を省略するときは、先頭文字列にnull文字を設定してください。
開始時刻を省略したときは、19710101000000を開始時刻とします。
YYYY:年(西暦)(1971≦YYYY≦9999)
MM:月(01≦MM≦12)
DD:日(01≦DD≦31)
hh:時(00≦hh≦23)
mm:分(00≦mm≦59)
ss:秒(00≦ss≦61)
- ■終了時刻
-
検索対象とする終了時刻をYYYYMMDDHHMMSSの形式の文字列で設定してください。終了時刻以前の稼働情報が対象となります。
文字列の最後には、null文字を設定してください。このnull文字は文字列の長さに数えません。
終了時刻を省略するときは、先頭文字列にnull文字を設定してください。
終了時刻を省略したときは、現在時刻を終了時刻とします。
YYYY:年(西暦)(1971≦YYYY≦9999)
MM:月(01≦MM≦12)
DD:日(01≦DD≦31)
hh:時(00≦hh≦23)
mm:分(00≦mm≦59)
ss:秒(00≦ss≦61)
- ■取得日数
-
検索対象とする稼働情報を現在日から本設定日数以前までとするときの日数を0~65535(単位:日)までの範囲で設定してください。
0を設定したときは、現在日の稼働情報だけが検索対象となります。
開始時刻、または終了時刻が設定されている場合、本設定は無効となります。
- ■SELECTパラメタ構造体アドレス
-
SELECTパラメタ構造体の先頭アドレスを設定してください。
本パラメタを省略するときは、NULLを設定してください。
SELECTパラメタ構造体の各パラメタに設定した情報は、論理積の検索条件となります。
SELECTパラメタ構造体を複数設定した場合は、各SELECTパラメタ構造体に設定した内容が論理和の検索条件となります。
各SELECTパラメタ構造体の設定内容の整合性チェックは行いません。
SELECTパラメタ構造体に次の情報を設定してください。
- ■プロトコル種別
-
検索対象とするプロトコル種別を設定してください。
ESRTM_PROT_ALL:全プロトコル
ESRTM_PROT_TCP:TCPプロトコル
ESRTM_PROT_HTTP:HTTPプロトコル
ESRTM_PROT_IIOP:IIOPプロトコル
ESRTM_PROT_RPC:RPCプロトコル
- ■SYSNAMEパラメタ構造体アドレス
-
システム名を検索条件とするときに設定してください。
本パラメタを省略するときは、NULLを設定してください。
SYSNAMEパラメタ構造体に次の情報を設定してください。
情報
設定する内容
システム名
システム名を1~31文字以内で設定してください。文字列の最後には、null文字を設定してください。このnull文字は文字列の長さに数えません。
- ■TELKEYパラメタ構造体アドレス
-
電文キーを検索条件とするときに設定してください。
本パラメタを省略するときは、NULLを設定してください。
本パラメタを設定した場合、USERKEYパラメタ構造体の情報とLOCATIONパラメタ構造体の情報は無効となります。
TELKEYパラメタ構造体に次の情報を設定してください。
情報
設定する内容
電文キー
電文キーを64バイト以内で設定してください。電文キーは、システム分析支援リアルタイムモニタが出力したKFSE84215-Iメッセージ、またはダッシュボードの稼働情報詳細画面の情報から設定してください。
- ■USERKEYパラメタ構造体アドレス
-
ユーザー任意情報(検索キー)を検索条件とするときに設定してください。
本パラメタを省略するときは、NULLを設定してください。
COUNT要求のときは、本設定は無効となります。
各電文について先頭から1バイトずつ検索キーと一致しているかどうかを確認するため、他パラメタの検索条件と比較すると時間が掛かります。
USERKEYパラメタ構造体に次の情報を設定してください。
情報
設定する内容
検索キー
検索条件とするユーザー任意情報(検索キー)を1~64バイトの範囲で設定してください。
検索対象種別
検索対象とする電文の種別を設定してください。
ESRTM_TYPE_REQUEST:要求電文
ESRTM_TYPE_RESPONSE:応答電文
検索キーサイズ
検索条件とするユーザー任意情報(検索キー)のサイズを1~64までの範囲で設定してください。
- ■LOCATIONパラメタ構造体アドレス
-
特定のロケーションのユーザー任意情報(検索キー)を検索条件とするときに設定してください。
本パラメタを省略するときは、NULLを設定してください。
COUNT要求のときは、本設定は無効となります。
LOCATIONパラメタ構造体に次の情報を設定してください。
情報
設定する内容
検索キー
検索条件とするユーザー任意情報(検索キー)を1~64バイトの範囲で設定してください。
検索対象種別
検索対象とする電文の種別を設定します。
ESRTM_TYPE_REQUEST:要求電文
ESRTM_TYPE_RESPONSE:応答電文
検索キーサイズ
検索条件とするユーザー任意情報(検索キー)のサイズを1~64の範囲で設定してください。
ロケーション
電文(ユーザーデータ部)の先頭からのロケーションを0~1073741823の範囲で設定してください。
- ■ALERTパラメタ構造体アドレス
-
アラート検知有無を検索条件とするときに設定してください。
本パラメタを省略するときは、NULLを設定してください。
ALERTパラメタ構造体に次の情報を設定してください。
情報
設定する内容
アラート種別
アラート検知対象の種別を設定してください。
ESRTM_ALERT_NONE:アラート検知なし
ESRTM_ALERT_ALL:アラート検知対象すべて
ESRTM_ALERT_PROTO:プロトコルレベルのエラー検知
ESRTM_ALERT_TIMEOUT:応答待ちタイムアウト検知(コネクション切断、およびパケットロストを含む)
ESRTM_ALERT_THRESHOLD:閾値超過
ESRTM_ALERT_USER:ユーザー指示(稼働情報編集UOC)
- ■RESPONSEパラメタ構造体アドレス
-
応答時間を検索条件とするときに設定してください。
本パラメタを省略するときは、NULLを設定してください。
RESPONSEパラメタ構造体に次の情報を設定してください。
情報
設定する内容
応答時間
検索対象とする応答時間をミリ秒単位で1~3600000の範囲で設定してください。
本設定時間以上、時間が掛かっている稼働情報が検索対象となります。
- ■SELECTパラメタ数
-
検索条件を設定したSELECTパラメタ構造体の数を1~64の範囲で設定してください。
UAPが設定するパラメタ項目:flags
ESNOFLAGSを設定してください。
システム検証支援基盤から値が返されるパラメタ項目
ありません。
リターン値
リターン値 |
意味 |
---|---|
ES_OK |
正常に終了しました。 |
ESRTMER_ARGUMENT |
引数に設定した値が間違っています。 |
ESRTMER_TIMING |
この関数を発行できる状態ではありません。 |
ESRTMER_MEMORY_SHORT |
メモリが不足しました。 |
ESRTMER_FILE |
アダプタ識別子、または稼働情報ファイル格納ディレクトリが不正です。 |
ESRTMER_IOERR |
稼働情報ファイルへのI/Oエラーが発生しました。 |
ESRTMER_SYSERR |
システムエラーが発生しました。 |
注意事項
-
各パラメタ構造体の予備はnull文字クリアしてください。
-
SELECTパラメタ構造体を複数設定する場合、検索条件が重複しないようにしてください。重複していた場合、検索性能に影響します。
INIT要求の設定例
- プロトコル種別とシステム名を検索条件とするときのINIT要求の設定例
-
プロトコル種別RPC、かつシステム名がSYSTEM1の稼働情報を取得対象とします。
ESRTM_INITPARAM init; ESRTM_SELECT sel; ESRTM_SYSNAME sysname; : init.select_param_pt = &sel; init.select_param_num = 1; sel.sysname_pt = &sysname; : sel.protocol=ESRTM_PROT_RPC; strncpy(sysname.name,"SYSTEM1", sizeof(sysname.name)); : rc = es_rtm_init(&init, ESNOFLAGS);
- 複数の検索キーを検索条件とするときのINIT要求の設定例
-
プロトコル種別HTTP、かつ応答電文に「system=aaa」、または「system=bbb」を含んだ稼働情報を取得対象とします。
ESRTM_INITPARAM init; ESRTM_SELECT sel[2]; ESRTM_USERKEY ukey[2]; : init.select_param_pt = &sel; init.select_param_num = 2; sel[0].userkey_pt = &ukey[0]; sel[1].userkey_pt = &ukey[1]; : sel[0].protocol=ESRTM_PROT_HTTP; ukey[0].tel_type = ESRTM_TYPE_RESPONSE; ukey[0].key_size = 10; strncpy(ukey[0].key,"system=aaa", sizeof(ukey[0].key)); sel[1].protocol=ESRTM_PROT_HTTP; ukey[1].tel_type = ESRTM_TYPE_RESPONSE; ukey[1].key_size = 10; strncpy(ukey[1].key,"system=bbb", sizeof(ukey[1].key)); : rc = es_rtm_init(&init, ESNOFLAGS);