JP1/Base 関数リファレンス
JP1イベントを発行するための作業手順を示します。
作業の流れは次のとおりです。
- 発行するJP1イベントの種類とイベント属性を決める
- JP1イベント発行関数を使用してコーディングする
- ソースファイルをコンパイルする
なお,JP1イベントに付加したユーザー独自のイベント属性をJP1/IM - Viewに表示できるようにするには,このあとJP1/IMで,JP1/IM - Managerがインストールされたマシン上に,次の定義ファイルを作成する必要があります。
- イベント拡張属性定義ファイル
- オブジェクトタイプ定義ファイル
JP1/IMでこれらの定義ファイルを作成する方法については,マニュアル「JP1/Integrated Management - Manager コマンド・定義ファイルリファレンス」を参照してください。
- <この項の構成>
- (1) 発行するJP1イベントの種類とイベント属性を決める
- (2) JP1イベント発行関数を使用してコーディングする
JP1(独自)イベントを発行するためには,まず,どんな事象をJP1イベントとして発行するのかを決めます。JP1/Baseのイベントサービスでは,発行するJP1イベントの数によって性能劣化が発生します。このため,JP1(独自)イベントはJP1/IMでシステム監視をするために必要なJP1イベントだけに絞り込む必要があります。
次に,イベント属性をどのように設定するかを決めます。イベント属性を決めるときは,JP1/IMでイベント監視をする際にそのアプリケーションの情報として何が必要かを考えます。アプリケーション単位で,発行するすべてのJP1(独自)イベントのイベント属性をあらかじめ決めておきます。
JP1イベントの属性値は,JP1/IMで自動アクション機能およびモニター画面呼び出しの際の引数として使用できます。次の例で記述するイベント属性の詳細については,「付録A JP1イベントの属性の設定基準」を参照してください。
ここでは,Windows上で動作する「SAMPLE」という名称のアプリケーションについて,開始イベントと異常終了イベントを発行する例について説明します。( )内は,JP1イベント発行関数の引数名です。
- 発行するJP1イベントの種類
- アプリケーションの開始時にJP1イベントを発行する(開始イベント)
イベントID(BaseID):0x00000001
メッセージ(message):「SAMPLEアプリケーションを開始します。」
- アプリケーションの異常終了時にJP1イベントを発行する(異常終了イベント)
イベントID(BaseID):0x00000002
メッセージ(message):「SAMPLEアプリケーションが異常終了しました。」
- イベント属性定義(拡張属性(extattrs)):開始イベント
- SAMPLEアプリケーションの開始イベントには,次の属性を定義します。
表2-2 開始イベントの属性
属性の種別 項目 属性名 内容 基本属性 イベントID − 0x00000001 メッセージ − 「Starts the SAMPLE application.」 拡張属性
(共通情報)
重大度 SEVERITY Notice ユーザー名 USER_NAME SAMPLE_USER プロダクト名 PRODUCT_NAME /COMPANY/APP1/SAMPLE_PRODUCT
(プロダクトの名称)オブジェクトタイプ OBJECT_TYPE SAMPLE オブジェクト名 OBJECT_NAME SAMPLE_NAME 登録名タイプ ROOT_OBJECT_TYPE ROOT_SAMPLE 登録名 ROOT_OBJECT_NAME ROOT_SAMPLE_NAME オブジェクトID OBJECT_ID SAMPLE_ID 事象種別 OCCURRENCE START 開始時刻 START_TIME SAMPLEアプリケーションの開始時刻。UTC 1970年1月1日 00:00:00からの秒数。 プラットフォーム種別 PLATFORM NT バージョン情報 ACTION_VERSION 0600 拡張属性
(固有情報)
SAMPLE共通属性1 COMMON_ATTR1 NATIVE SAMPLE共通属性2 COMMON_ATTR2 TRUE SAMPLE開始属性1 START_ATTR1 SAMPLE1 SAMPLE開始属性2 START_ATTR2 SAMPLE2
- イベント属性定義(拡張属性(extattrs)):異常終了イベント
- SAMPLEアプリケーションの異常終了イベントには,次の属性を定義します。
表2-3 異常終了イベントの属性
属性の種別 項目 属性名 内容 基本属性 イベントID − 0x00000002 メッセージ − 「The SAMPLE application terminated abnormally.」 拡張属性
(共通情報)
重大度 SEVERITY Error ユーザー名 USER_NAME SAMPLE_USER プロダクト名 PRODUCT_NAME /COMPANY/APP1/SAMPLE_PRODUCT
(プロダクトの名称)オブジェクトタイプ OBJECT_TYPE SAMPLE オブジェクト名 OBJECT_NAME SAMPLE_NAME 登録名タイプ ROOT_OBJECT_TYPE ROOT_SAMPLE 登録名 ROOT_OBJECT_NAME ROOT_SAMPLE_NAME オブジェクトID OBJECT_ID SAMPLE_ID 事象種別 OCCURRENCE END 終了時刻 END_TIME SAMPLEアプリケーションの終了時刻。UTC 1970年1月1日 00:00:00からの秒数。 終了コード RESULT_CODE SAMPLEアプリケーション終了時の終了コード プラットフォーム種別 PLATFORM NT バージョン情報 ACTION_VERSION 0600 拡張属性
(固有情報)
SAMPLE共通属性1 COMMON_ATTR1 NATIVE SAMPLE共通属性2 COMMON_ATTR2 TRUE SAMPLE終了属性1 END_ATTR1 SAMPLE1 SAMPLE終了属性2 END_ATTR2 SAMPLE2
(2) JP1イベント発行関数を使用してコーディングする
前の項で説明したSAMPLEアプリケーションで,開始イベントを発行する場合のコーディング例を次に示します。
#include <stdio.h> #include <time.h> #include "JevApi.h" int regist_start_event() { int rc; /* リターンコード */ long status = 0; /* 詳細エラーコード */ const char* server; /* イベントサーバ名 */ long baseID; /* イベントID */ const char* message; /* メッセージ */ char starttime[32]; const char* extattrs[16]; /* 拡張属性を格納するための配列 */ /* 登録先イベントサーバ名を設定します */ server = NULL; /* イベントIDを設定します */ baseID = 0x00000001; /* メッセージを設定します */ message = "Starts the SAMPLE application."; /* 拡張属性を設定します */ extattrs[0] = "SEVERITY=Notice"; extattrs[1] = "USER_NAME=SAMPLE_USER"; extattrs[2] = "PRODUCT_NAME=/COMPANY/APP1/SAMPLE_PRODUCT"; extattrs[3] = "OBJECT_TYPE=SAMPLE"; extattrs[4] = "OBJECT_NAME=SAMPLE_NAME"; extattrs[5] = "OBJECT_ROOT_TYPE=ROOT_SAMPLE"; extattrs[6] = "OBJECT_ROOT_NAME=ROOT_SAMPLE_NAME"; extattrs[7] = "OBJECT_ID=SAMPLE_ID"; extattrs[8] = "OCCURRENCE=START"; sprintf(starttime, "START_TIME=%ld", time(NULL)); extattrs[9] = starttime; extattrs[10] = "PLATFORM=NT"; extattrs[11] = "VERSION=0600"; extattrs[12] = "COMMON_ATTR1=NATIVE"; extattrs[13] = "COMMON_ATTR2=TRUE"; extattrs[14] = "START_ATTR1=SAMPLE1"; extattrs[15] = "START_ATTR2=SAMPLE2"; /* JP1イベントを登録します */ rc = JevRegistEvent(&status, server, baseID, message, extattrs, 16); if(rc < 0) { fprintf(stderr, "JevRegistEvent() failed. status = %ld\n", status); return -1; } return 0; }
All Rights Reserved. Copyright (C) 2009, 2011, Hitachi, Ltd.