監視メッセージのAPI一覧を以下に示します。
関数名 | 機能 |
---|---|
Mp_OpenMsg | メッセージの通知開始要求 |
Mp_ReadMsg | メッセージのリード要求 |
Mp_GetMsgMap【Windows】 | メッセージの取り出し要求 |
Mp_CloseMsg | メッセージの通知終了要求 |
Mp_OpenMsgLog | メッセージログの読み出し開始要求 |
Mp_ReadMsgLog | メッセージログの読み出し要求 |
Mp_CloseMsgLog | メッセージログの読み出し終了要求 |
監視メッセージのAPI共通の動作環境、注意事項、および必要ファイルについての説明を以下に示します。
動作環境
本APIは、以下のインストール種別で動作します。
運用管理サーバ
部門管理サーバ
業務サーバ
クライアント【Windows】
注意事項
LIBファイル、およびINCLUDEファイルは、同じバージョン/レベルで提供されたものを使用してください。
監視メッセージのAPIは、マルチスレッドプログラミングをサポートしていません。
“Mp_OpenMsg()”関数を呼び出したプロセスは、“Mp_CloseMsg()”関数を呼び出すまで終了しないでください。
システム監視のAPIを使用するアプリケーションは、signal を使用しないでください。
監視メッセージのAPIの最大同時実行数は4つまでです。
Mp_OpenMsg()関数/Mp_ReadMsg()関数/Mp_GetMsgMap()関数【Windows版】/Mp_CloseMsg()関数を利用するには、“システム監視のAPIを利用する”を実施する必要があります。
“Mp_ReadMsg()”関数を呼び出した後の“WaitForSingleObject()”関数で、タイムアウトを設定し、タイムアウトした場合は、再度“WaitForSingleObject()”関数で待機するか、“Mp_CloseMsg”を呼び出し、再度“Mp_OpenMsg()”関数から処理を行ってください。【Windows版】
“Mp_ReadMsg()”関数を呼び出した後は、“Mp_GetMsgMap()”を呼び出してください。【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_opagt_api.h、mp_operr_api.h
リンクするライブラリ
Systemwalkerインストールディレクトリ\MPWALKER.DM\Lib\mpopagt_64.lib
使用するDLL
Systemwalkerインストールディレクトリ\MPWALKER.DM\Bin\mpopagt_64.dll
上記ライブラリは64bit版製品で利用できます。
32bit版製品には、64bit版モジュールのコンパイル用にヘッダとライブラリ(libファイル)のみ同梱されています。
【Windows x64版の場合で64ビットのアプリケーションを作成する場合】
INCLUDEファイル
Systemwalkerインストールディレクトリ\MPWALKER.DM\Include\mp_opagt_api.h、mp_operr_api.h
リンクするライブラリ
Systemwalkerインストールディレクトリ\MPWALKER.DM\Lib\mpopagt_x64.lib
使用するDLL
Systemwalkerインストールディレクトリ\MPWALKER.DM\Bin\mpopagt_x64.dll
上記ライブラリは64bit版製品で利用できます。
32bit版製品には、64bit版モジュールのコンパイル用にヘッダとライブラリ(libファイル)のみ同梱されています。
【Windows for Itanium、Windows x64以外の場合】
INCLUDEファイル
Systemwalkerインストールディレクトリ\MPWALKER.DM\Include\mp_opagt_api.h、mp_operr_api.h
リンクするライブラリ
Systemwalkerインストールディレクトリ\MPWALKER.DM\Lib\mpopagt_32.lib
使用するDLL
Systemwalkerインストールディレクトリ\MPWALKER.DM\Bin\mpopagt_32.dll
上記ライブラリは32bit版、64bit版製品共に利用できます。32ビットのアプリケーションから使用できます。
【Windows for Itanium、Windows x64以外(V13.1.0以前との互換ライブラリ)】
INCLUDEファイル
Systemwalkerインストールディレクトリ\MPWALKER.DM\Include\mp_opagt_api.h、mp_operr_api.h
リンクするライブラリ
Systemwalkerインストールディレクトリ\MPWALKER.DM\Lib\mpopagt.lib
使用するDLL
Systemwalkerインストールディレクトリ\MPWALKER.DM\Bin\mpopagt.dll
上記ライブラリは32bit版、64bit版製品共に利用できます。32ビットのアプリケーションから使用できます。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_opagt_api.h
mp_opagt_api.hをインクルードすればほかの2つもその中からインクルードされます。
ライブラリ
OS | リンクするライブラリ |
---|---|
Solaris | /usr/lib/libthread.so(運用管理サーバの場合のみ必要です) |
Linux(x86版、Intel Itanium版、Intel64版でV13.3.0以前からの互換用) | /usr/lib/libdl.so |
Linux(Intel64版) | /usr/lib64/libdl.so |
AIX | /usr/lib/libopagtall.so |
HP-UX | /usr/lib/libopagtall.sl |
コンパイル環境
コンパイル環境は以下のとおりです。
【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)
HP-UX: HP-UX上で動作するPA-RISCコンパイラ
AIX : AIX上で動作する C for AIX コンパイラ
使用例
API関数の使用例を以下に示します。
メッセージを監視する
メッセージログを読み出す
下記のAPI関数を発行することにより、被監視システムから通知されるメッセージを1つずつ読み出し、監視することができます。1メッセージ単位に、[Systemwalkerコンソール]の[メッセージ一覧]と同等の情報を取得できます。
Mp_OpenMsg()関数
Mp_ReadMsg()関数
Mp_GetMsgMap()関数【Windows】
Mp_CloseMsg()関数
【Windows版】
CreateEvent() ---------------------- 1) Mp_OpenMsg() for(;;){ if(!Mp_ReadMsg()){ ---------------------- 2) if(GetLastError() != ERROR_IO_PENDING){ break; } WaitForSingleObject(); ---------------------- 3) GetOverLappedResult(); } if(Mp_GetMsgMap() == 0){ break } ・ ・ } Mp_CloseMsg(); ---------------------- 4) CloseEvent();
1) メッセージ通知開始要求。
2) メッセージ獲得処理。
3) 通知メッセージがない場合の待ち合わせ処理。
4) メッセージ通知終了要求。
【UNIX版】
if((fp=Mp_OpenMsg())<0){ ---------------------- 1) return(-1); } for(;;){ ret=select(); ---------------------- 2) if(ret!=1){ Mp_CloseMsg(fp); return(-1); } if(Mp_ReadMsg()<0){ ---------------------- 3) break; } ・ ・ } Mp_CloseMsg(fp); ---------------------- 4)
1) メッセージ通知開始要求。
2) イベント受信待ち。
3) イベント獲得処理。
4) メッセージ通知終了要求。
下記のAPI関数を発行することにより、メッセージログファイルにロギングされた過去のメッセージの読み込みができます。
Mp_OpenMsgLog()関数
Mp_ReadMsgLog()関数
Mp_CloseMsgLog()関数
fp=Mp_OpenMsgLog(); ----------------------1) for(;;){ if(Mp_ReadMsgLog(fp, ..)!=1){ ----------------------2) break; } ・ ・ } Mp_CloseMsgLog(fp); ----------------------3)
1) 読み出し開始要求をする。
2) ロギングされた監視(イベントを1イベントずつ読み出す)。
3) 読み出し終了要求をする。