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リンカに「動的ライブラリに対してリンクする」ことを伝えます(デフォルト値であるため,指定しなくても指定時と同じ結果になります)。
-ldldlopen関数などのライブラリを使用します。

次に,コンパイル時の例について,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
(凡例) △:半角スペースを示します。