Cluster Server 7.3.1 エージェント開発者ガイド - AIX、Linux、Solaris、Windows
- 概要
- エージェントのエントリポイントの概要
- エージェントのエントリポイントについて
- エージェントエントリポイントの説明
- action エントリポイントについて
- info エントリポイントについて
- C++ またはスクリプトエントリポイントの使用上の注意事項
- エージェント情報ファイルについて
- ArgList 属性と ArgListValues 属性について
- C++ でのエントリポイントの作成
- C++ でのエントリポイントの作成について
- C++ のエントリポイントの構文
- エージェントフレームワークの基本関数
- コンテナサポートのためのエージェントフレームワーク基本関数
- スクリプトでのエントリポイントの作成
- スクリプトでのエントリポイントの作成について
- スクリプトエントリポイントの構文
- エージェントフレームワークの基本関数
- VCSAG_GET_ATTR_VALUE
- コンテナをサポートするエージェントフレームワーク基本関数
- スクリプトのエントリポイントの例
- エージェントメッセージのログ
- カスタムエージェントの作成
- スクリプトベースの IMF 対応カスタムエージェントの作成
- エージェントのテスト
- 静的タイプ属性
- 静的属性について
- 静的タイプ属性の定義
- AdvDbg
- ArgList
- 状態の遷移図
- 国際化されたメッセージ
- First Failure Data Capture(FFDC)を使用した VCS リソースの予期しない動作のトラブルシューティング
- 付録 A. 5.0 より前の VCS エージェントの使用
C++ でのエントリポイントの作成について
エージェントフレームワークはマルチスレッドに対応しているため、開発者によって書かれるすべての C++ コードは、マルチスレッドに対して安全(MT-safe)である必要があります。 最善の結果を得るために、グローバル変数の使用は避けてください。 グローバル変数を使用する場合は、(たとえば、mutex ロックを使用して)アクセスを順序付ける必要があります。
次のガイドラインも適用されます。
マルチスレッドアプリケーションでは安全でない C ライブラリ関数は使用しないでください。 代わりに、同等の再入可能なものを使用してください。たとえば、readdir() ではなく readdir_r() を使用します。 これらのコマンドのいずれかのマニュアルページにアクセスするには、man コマンドを入力します。
リソースを獲得するとき(メモリを動的に割り当てる、ファイルを開くなど)は、リソースが正しく解放されるように、スレッド取り消しハンドラを使用してください。 詳細については、pthread_cleanup_push および pthread_cleanup_pop のマニュアルページを参照してください。 これらのコマンドのいずれかのマニュアルページにアクセスするには、man コマンドを入力します。
開発するエージェントに、少なくとも 1 つのエントリポイントを C++ で実装する場合、関数 VCSAgStartup() を実装して、必要な C++ 基本関数を使用し、C++ エントリポイントをエージェントフレームワークに登録する必要があります。
C++ のエントリポイントを使用してエージェントを作成するためのテンプレートが含まれているサンプルファイルは、次の場所に格納されています。
UNIX の場合: $VCS_HOME/src/agent/Sample
C++ を使うと、コンテナ(非グローバルゾーンを含む)で実行されるアプリケーションを監視するエージェントを開発できます。 VCS には、コンテナをサポートするための API が用意されています。
コンテナサポートのためのエージェントフレームワーク基本関数を参照してください。