監視メッセージの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) 読み出し終了要求をする。