Hitachi

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


6.17.1 UAPへのAPIの組み込み

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

〈この項の構成〉

(1) APIを組み込めるUAP

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

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

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

表6‒16 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‒17 コンパイル時に必須のオプション

オプション

意味

-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-osample-I/opt/hitachi/HAmon/api/include-L/opt/hitachi/HAmon/api/libsample.c/opt/hitachi/HAmon/api/lib/hamon_api64.a-Wl,-Bdynamic-ldl

(凡例) △:半角スペースを示します。

32ビット環境の例
C言語で作成したUAPのソースプログラム名

sample.c(メイン関数)

UAPコンパイル時のコマンドラインの例

gcc-osample-I/opt/hitachi/HAmon/api/include-L/opt/hitachi/HAmon/api/libsample.c/opt/hitachi/HAmon/api/lib/hamon_api32.a-Wl,-Bdynamic-ldl

(凡例) △:半角スペースを示します。