Hitachi

JP1 Version 12 JP1/Base 関数リファレンス


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

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

  1. 発行するJP1イベントの種類とイベント属性を決める

  2. JP1イベント発行関数を使用してコーディングする

  3. ソースファイルをコンパイルする

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

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

〈この項の構成〉

(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;                    /* Return code */
    long status = 0;           /* Detailed error code */
    const char* server;        /* Event server name */
    long baseID;               /* Event ID */
    const char* message;       /* Message */
    char starttime[32];
    const char* extattrs[16];  /* Array for storing extended attributes */
 
    /* Set the destination event server name. */
    server = NULL;
 
    /* Set the event ID. */
    baseID = 0x00000001;
 
    /* Set the message. */
    message = "Starts the SAMPLE application.";
 
    /* Set the extended attributes. */
    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";
 
    /* Register the JP1 event. */
    rc = JevRegistEvent(&status,
                        server,
                        baseID,
                        message,
                        extattrs,
                        16);
    if(rc < 0) {
        fprintf(stderr,
                "JevRegistEvent() failed. status = %ld\n",
                 status);
        return -1;
    }
 
    return 0;
}