高信頼化システム監視機能 HAモニタ Linux(R)編

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

6.13.1 UAPへのAPIの組み込み

モニタモードのプログラム管理機能を使用してUAPを監視する場合,HAモニタが提供するAPIをUAPから発行するために,UAPのソースコードを編集する必要があります。ここでは,UAPへのAPIの組み込みについて説明します。

<この項の構成>
(1) APIを組み込めるUAP
(2) HAモニタが提供するファイル
(3) UAPの作成
(4) コンパイルとリンケージ

(1) APIを組み込めるUAP

次に示すすべての項目に該当するUAPでAPIを使用できます。

(2) HAモニタが提供するファイル

HAモニタでは,UAPがAPIを発行するために次のファイルを提供します。

表6-11 APIを発行するためにHAモニタが提供するファイル

名称 ファイルの格納パス 説明
ヘッダファイル
/opt/hitachi/HAmon/api/include/HA_mon_uap.h
APIを使用するために必要なヘッダファイルです。
APIのオブジェクトファイル
 
/opt/hitachi/HAmon/api/lib/hamon_api32.a
APIを使用するためにUAPに静的にリンクが必要なオブジェクトファイルです。32ビット環境で動作するUAP用です。
/opt/hitachi/HAmon/api/lib/hamon_api64.a
APIを使用するためにUAPに静的にリンクが必要なオブジェクトファイルです。64ビット環境で動作するUAP用です。
APIの共有ライブラリファイル
 
/opt/hitachi/HAmon/api/lib/hamon_api32.so
UAPの実行時に動的に使用するAPIライブラリファイルです。32ビット環境で動作するUAP用です。
/opt/hitachi/HAmon/api/lib/hamon_api64.so
UAPの実行時に動的に使用するAPIライブラリファイルです。64ビット環境で動作するUAP用です。
注※
UAP実行時にAPIのオブジェクトファイルから動的にロードするライブラリです。UAPにリンケージできません。

(3) UAPの作成

C言語を使用してUAPを作成します。UAPには,HAモニタが提供するAPIを記述します。

また,UAPのスローダウン時に実行するシェルで解析できるように,システムコールやSQLなどの関数の発行前後にトレース情報を取得する処理を記述してください。メモリ上にトレース情報を取得し,coreから解析する方法やメッセージを出力する方法が有効です。

(4) コンパイルとリンケージ

APIを記述したUAPのソースファイルは,gccコマンドでコンパイルします。

コンパイル時に必須のオプションを,次の表に示します。

表6-12 コンパイル時に必須のオプション

オプション 意味
-o 作成するバイナリのファイル名を指定します。
-I/opt/hitachi/HAmon/api/include ヘッダファイルのパスを指定します。
-L/opt/hitachi/HAmon/api/lib 共有ライブラリのパスを指定します。
-Wl,-Bdynamic リンカに「動的ライブラリに対してリンクする」ことを伝えます(デフォルト値であるため,指定しなくても指定時と同じ結果になります)。
-ldl dlopen関数などのライブラリを使用します。

次に,コンパイル時の例について,64ビット環境と32ビット環境に分けて示します。

64ビット環境の例
C言語で作成したUAPのソースプログラム名
sample.c(メイン関数)
UAPコンパイル時のコマンドラインの例
gcc△-o△sample△-I/opt/hitachi/HAmon/api/include△-L/opt/hitachi/HAmon/api/lib△sample.c△/opt/hitachi/HAmon/api/lib/hamon_api64.a△-Wl,-Bdynamic△-ldl
(凡例) △:半角スペースを示します。
32ビット環境の例
C言語で作成したUAPのソースプログラム名
sample.c(メイン関数)
UAPコンパイル時のコマンドラインの例
gcc△-o△sample△-I/opt/hitachi/HAmon/api/include△-L/opt/hitachi/HAmon/api/lib△sample.c△/opt/hitachi/HAmon/api/lib/hamon_api32.a△-Wl,-Bdynamic△-ldl
(凡例) △:半角スペースを示します。