監視イベントのAPI一覧を以下に示します。
関数名 | 機能 |
---|---|
Mp_OpenEventLog | 監視イベントログの読み出し開始要求 |
Mp_ReadEventLog | 監視イベントログの読み出し要求 |
Mp_CloseEventLog | 監視イベントログの読み出し終了要求 |
Mp_OpenEvent | イベントの監視開始要求 |
Mp_ReadEvent | イベントのリード要求 |
Mp_GetEventMap【Windows】 | イベントの取り出し要求 |
Mp_CloseEvent | イベントの監視終了要求 |
Mp_OpenEventStat | イベントの状態変更開始要求 |
Mp_ChangeEventStat | イベントの対処要求 |
Mp_CloseEventStat | イベントの状態変更終了要求 |
監視イベントのAPI共通の動作環境、注意事項、および必要ファイルについての説明を以下に示します。
動作環境
本APIは、以下のインストール種別で動作します。
運用管理サーバ
注意事項
LIBファイルおよびINCLUDEファイルは、同じバージョン/レベルで提供されたものを使用してください。
監視イベントのAPIは、マルチスレッドプログラミングをサポートしていません。
“Mp_OpenEvent()”関数を呼び出したプロセスは、“Mp_CloseEvent()”関数を呼び出すまで終了しないでください。
監視イベントのAPIを使用するアプリケーションは、signal を使用しないでください。
監視イベントのAPIの最大同時実行数は4つまでです。
Mp_OpenEvent()関数/Mp_ReadEvent()関数/Mp_GetEventMap()関数【Windows版】/Mp_CloseEvent()関数を利用するには、“システム監視のAPIを利用する”を実施する必要があります。
“Mp_ReadEvent()”関数を呼び出した後の“WaitForSingleObject()”関数でタイムアウトを設定し、タイムアウトした場合は、再度“WaitForSingleObject()”関数で待機するか“Mp_CloseEvent”を呼び出し、再度“Mp_OpenEvent()”関数から処理を行ってください。【Windows版】
“Mp_ReadEvent()”関数を呼び出した後は、“Mp_GetEventMap()”を呼び出してください。【Windows版】
Systemwalker Centric Managerのバージョンが異なる環境で作成されたシステム監視のAPIを使用するアプリケーションは動作しません。
動作させるには、動作環境と同じSystemwalker Centric Managerのバージョンの環境下で、アプリケーションのリコンパイルを行ってください。
Solaris、およびLinuxで監視イベントAPIを使用するアプリケーションをコンパイル、および実行するときには、環境変数LD_LIBRARY_PATHに“/opt/systemwalker/lib”を設定してください。
Linux for Itanium版、Linux for Intel64版で64bitのアプリケーションを作成する場合、コンパイルするときにプリプロセッサオプションとして“-D__LP64__”をつけてください。
コンパイルに必要な権限は以下の通りです。
【Windows版】
Administrator権限/DmAdmin権限/DmOperation権限/DmReference権限が必要です。
運用管理サーバでコンパイルできます。
【UNIX版】
システム管理者(スーパーユーザ)権限が必要です。
運用管理サーバでコンパイルできます。
必要ファイル
上記監視イベントのAPIを使用するには、以下のファイルが必要となります。
【Windowsの場合】
監視イベントのAPIは、以下のライブラリ(LIBファイル,DLLファイル)に格納され、各APIで使用する定数および構造体は、INCLUDEファイルに宣言されています。
【Windows for Itanium版の場合で64ビットのアプリケーションを作成する場合】
INCLUDEファイル
Systemwalkerインストールディレクトリ\MPWALKER.DM\Include\mp_opmgr_api.h、mp_operr_api.h
リンクするライブラリ
Systemwalkerインストールディレクトリ\MPWALKER.DM\Lib\mpopmgr_64.lib
使用するDLL
Systemwalkerインストールディレクトリ\MPWALKER.DM\Bin\mpopmgr_64.dll
上記ライブラリは64bit版製品で利用できます。
32bit版製品には、64bit版モジュールのコンパイル用にヘッダとライブラリ(libファイル)のみ同梱されています。
【Windows x64版の場合で64ビットのアプリケーションを作成する場合】
INCLUDEファイル
Systemwalkerインストールディレクトリ\MPWALKER.DM\Include\mp_opmgr_api.h、mp_operr_api.h
リンクするライブラリ
Systemwalkerインストールディレクトリ\MPWALKER.DM\Lib\mpopmgr_x64.lib
使用するDLL
Systemwalkerインストールディレクトリ\MPWALKER.DM\Bin\mpopmgr_x64.dll
上記ライブラリは64bit版製品で利用できます。
32bit版製品には、64bit版モジュールのコンパイル用にヘッダとライブラリ(libファイル)のみ同梱されています。
【Windows for Itanium、Windows x64以外の場合】
INCLUDEファイル
Systemwalkerインストールディレクトリ\MPWALKER.DM\Include\mp_opmgr_api.h、mp_operr_api.h
リンクするライブラリ
Systemwalkerインストールディレクトリ\MPWALKER.DM\Lib\mpopmgr_32.lib
使用するDLL
Systemwalkerインストールディレクトリ\MPWALKER.DM\Bin\mpopmgr_32.dll
上記ライブラリは32bit版製品で利用できます。
【Windows for Itanium、Windows x64以外(V13.1.0以前との互換ライブラリ)】
INCLUDEファイル
Systemwalkerインストールディレクトリ\MPWALKER.DM\Include\mp_opmgr_api.h、mp_operr_api.h
リンクするライブラリ
Systemwalkerインストールディレクトリ\MPWALKER.DM\Lib\mpopmgr.lib
使用するDLL
Systemwalkerインストールディレクトリ\MPWALKER.DM\Bin\mpopmgr.dll
上記ライブラリは32bit版製品で利用できます。32bit版ライブラリはV13.1.0以前の製品との互換用ライブラリで、time_t型のサイズが32bitでコンパイルされています。新規導入される場合での利用は推奨しません。
【UNIXの場合】
以下のINCLUDEファイルとライブラリが必要です。
INCLUDEファイル
/opt/systemwalker/include/f1egopag.h
/opt/systemwalker/include/mp_operr_api.h
/opt/systemwalker/include/mp_opmgr_api.h
mp_opmgr_api.hをインクルードすれば、ほかの2つもその中からインクルードされます。
ライブラリ
OS | リンクするライブラリ |
---|---|
Solaris | /usr/lib/libthread.so |
Linux (Intel64版以外) | /usr/lib/libopmgr.so |
Linux (Intel64版) | /usr/lib64/libopmgr.so |
コンパイル環境
コンパイル環境は以下のとおりです。
【Windowsの場合】
コンパイラ : Microsoft Visual C++ 2005
ランタイムライブラリ : “マルチスレッド(DLL)”を使用してください。
プリプロセッサ : V13.1.0以前との互換ライブラリを利用する場合は、“_USE_32BIT_TIME_T”を指定してください。また、Windows for Itanium版、Windows x64版で64ビットのアプリケーションを作成する場合は、“_WIN64”を指定してください。
【UNIXの場合】
Solaris : Sun WorkShop 5.0以降
Linux : 動作プラットフォームにバンドルされているコンパイラ (gcc)
使用例
API関数の使用例を以下に示します。
監視イベントログを読み出す
イベントを監視する
監視イベントを対処する
下記のAPI関数を発行することにより、イベントログにロギングされた過去の監視イベントを、1イベントずつ読み出すことができます。
Mp_OpenEventLog()関数
Mp_ReadEventLog()関数
Mp_CloseEventLog()関数
fp=Mp_OpenEventLog() --------------- 1) for(;;){ if(Mp_ReadEventLog(fp, ..)!=1){ --------------- 2) break; } ・ ・ } Mp_CloseEventLog(fp); --------------- 3)
1) 読み出し開始要求をする。
2) ロギングされた監視(イベントを1イベントずつ読み出す)。
3) 読み出し終了要求をする。
監視イベント受信関数は、監視イベント通知の要求開始から要求終了までに運用管理サーバに通知され、イベントログファイルに格納されるイベントをリアルタイムに受け取れます。
Mp_OpenEvent()関数
Mp_ReadEvent()関数
Mp_GetEventMap()関数【Windows】
Mp_CloseEvent()関数
【Windows版】
CreateEvent(); if((Mp_OpenEvent())<0){ ---------------------- 1) return(-1); } for(;;){ if(!Mp_ReadEvent()){ ---------------------- 2) if(GetLastError()!=ERROR_IO_PENDING){ break; } WaitForSingleObject(); ---------------------- 3) GetOverLappedResult(); } if(Mp_GetEventMap()<0){ ---------------------- 4) break; } ・ ・ } Mp_CloseEvent(); ---------------------- 5) CloseEvent()
1) 監視要求開始処理。
2) イベント受信待ち。
3) 通知イベントがない場合の待ち合わせ処理。
4) 監視イベント獲得。
5) 監視終了要求開始処理。
【UNIX版】
if((fp=Mp_OpenEvent())<0){ ---------------------- 1) return(-1); } for(;;){ ret=select(); ---------------------- 2) if(ret!=1){ Mp_CloseEvent(fp); return(-1); } if(Mp_ReadEvent() < 0){ ---------------------- 3) break; } ・ ・ } Mp_CloseEvent(fp); ---------------------- 4)
1) 監視要求開始処理。
2) イベント受信待ち。
3) 監視イベント獲得。
4) 監視要求終了処理。
下記のAPI関数を発行することにより、監視イベントを対処(監視イベントの状態を“保留”、“対処済”、“返答済”に変更)することができます。
Mp_OpenEventStat()関数
Mp_ChangeEventStat()関数
Mp_CloseEventStat()関数
Mp_OpenEventStat(); ---------------------- 1) ・ ・ Mp_ChangeEventStat(); ---------------------- 2) ・ ・ Mp_CloseEventStat(); ---------------------- 3)
1) 状態変更開始要求をする。
2) 監視イベントの対処。
3) 状態変更要求をする。