JP1/Base 関数リファレンス

[目次][索引][前へ][次へ]


2.2.1 JP1イベントを発行する手順

JP1イベントを発行するための作業手順を示します。

作業の流れは次のとおりです。

  1. 発行するJP1イベントの種類とイベント属性を決める
  2. JP1イベント発行関数を使用してコーディングする
  3. ソースファイルをコンパイルする

なお,JP1イベントに付加したユーザー独自のイベント属性をJP1/IM - Viewに表示できるようにするには,このあとJP1/IMで,JP1/IM - Managerがインストールされたマシン上に,次の定義ファイルを作成する必要があります。

JP1/IMでこれらの定義ファイルを作成する方法については,マニュアル「JP1/Integrated Management - Manager コマンド・定義ファイルリファレンス」を参照してください。

<この項の構成>
(1) 発行するJP1イベントの種類とイベント属性を決める
(2) JP1イベント発行関数を使用してコーディングする

(1) 発行する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.