検索クエリーを入力してください
<book_title> を検索 ...
Cluster Server 7.3.1 エージェント開発者ガイド - AIX、Linux、Solaris、Windows
Last Published:
2018-01-17
Product(s):
InfoScale & Storage Foundation (7.3.1)
- 概要
- エージェントのエントリポイントの概要
- エージェントのエントリポイントについて
- エージェントエントリポイントの説明
- 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++ attr_changed の構文
void res_attr_changed(const char *res_name, const char *changed_res_name, const char *changed_attr_name, void **new_val);
パラメータ new_val には、属性の新しい値が含まれます。 new_val のエンコードは、「ArgList 属性と ArgListValues 属性について」で説明されているエンコードに類似しています。
ArgList 属性と ArgListValues 属性についてを参照してください。
この関数には任意の名前を使うことが可能です。
VCSAgValidateAndSetEntryPoint() のパラメータを、エントリポイントの関数の名前に設定します。
次の例では、関数 res_attr_changed が attr_changed エントリポイントとして定義されています。
メモ:
このエントリポイントは、基本関数である VCSAgRegister や、エージェントパラメータ RegList を使用して、変化を通知するために、事前に登録している場合にのみ実行されます。
RegListを参照してください。
次に例を示します。
#include "VCSAgApi.h" void res_attr_changed(const char *res_name, const char *changed_res_name, const char *changed_attr_name, void **new_val) { // When the value of attribute Foo changes, take some action. if ((strcmp(res_name, changed_res_name) == 0) && (strcmp(changed_attr_name, "Foo") == 0)) { // Extract the new value of Foo. Here, it is assumed // to be a string. const char *foo_val = (char *)new_val[0]; // Implement the action. ... } // Resource Ora1 managed by this agent needs to // take some action when the Size attribute of // the resource Disk1 is changed. if ((strcmp(res_name, "Ora1") == 0) && (strcmp(changed_attr_name, "Size") == 0) && (strcmp(changed_res_name, "Disk1") == 0)) { // Extract the new value of Size. Here, it is // assumed to be an integer. int sizeval = atoi((char *)new_val[0]); // Implement the action. ... } } void VCSAgStartup() { VCSAG_LOG_INIT("VCSAgStartup"); VCSAgSetLogCategory(10051); VCSAgInitEntryPointStruct(V51); VCSAgValidateAndSetEntryPoint(VCSAgEPAttrChanged, res_attr_changed);}