検索クエリーを入力してください
<book_title> を検索 ...
Cluster Server 7.3.1 エージェント開発者ガイド - AIX、Linux、Solaris、Windows
Last Published:
2018-01-17
Product(s):
InfoScale & Storage Foundation (7.3.1)
- 概要
- エージェントのエントリポイントの概要
- エージェントのエントリポイントについて
- エージェントエントリポイントの説明
- open エントリポイントについて
- monitor エントリポイントについて
- online エントリポイントについて
- offline エントリポイントについて
- clean エントリポイントについて
- action エントリポイントについて
- info エントリポイントについて
- attr_changed エントリポイントについて
- close エントリポイントについて
- shutdown エントリポイントについて
- imf_init エントリポイントについて
- imf_register エントリポイントについて
- imf_getnotification エントリポイントについて
- migrate エントリポイントについて
- meter エントリポイントについて
- エントリポイントの戻り値
- C++ またはスクリプトエントリポイントの使用上の注意事項
- エージェント情報ファイルについて
- ArgList 属性と ArgListValues 属性について
- C++ でのエントリポイントの作成
- C++ でのエントリポイントの作成について
- データ構造
- C++ のエントリポイントの構文
- エージェントフレームワークの基本関数
- VCSAgGetMonitorLevel
- VCSAgGetFwVersion
- VCSAgGetRegVersion
- VCSAgRegisterEPStruct
- VCSAgSetCookie2
- VCSAgRegister
- VCSAgUnregister
- VCSAgGetCookie
- VCSAgStrlcpy
- VCSAgStrlcat
- VCSAgSnprintf
- VCSAgCloseFile
- VCSAgDelString
- VCSAgExec
- VCSAgExecWithTimeout
- VCSAgGenSnmpTrap
- VCSAgSendTrap
- VCSAgLockFile
- VCSAgInitEntryPointStruct
- VCSAgSetStackSize
- VCSAgUnlockFile
- VCSAgValidateAndSetEntryPoint
- VCSAgSetLogCategory
- VCSAgGetProductName
- VCSAgMonitorReturn
- VCSAgSetResEPTimeout
- VCSAgDecryptKey
- VCSAgGetConfDir
- VCSAgGetHomeDir
- VCSAgGetLogDir
- VCSAgGetSystemName
- VCSAG_CONSOLE_LOG_MSG
- VCSAG_LOG_MSG
- VCSAG_LOGDBG_MSG
- VCSAG_RES_LOG_MSG
- コンテナサポートのためのエージェントフレームワーク基本関数
- スクリプトでのエントリポイントの作成
- スクリプトでのエントリポイントの作成について
- スクリプトエントリポイントの構文
- エージェントフレームワークの基本関数
- VCSAG_GET_MONITOR_LEVEL
- VCSAG_GET_AGFW_VERSION
- VCSAG_GET_REG_VERSION
- VCSAG_SET_RES_EP_TIMEOUT
- VCSAG_GET_ATTR_VALUE
- VCSAG_SET_RESINFO
- VCSAG_MONITOR_EXIT
- VCSAG_SYSTEM
- VCSAG_SU
- VCSAG_RETURN_IMF_RESID
- VCSAG_RETURN_IMF_EVENT
- VCSAG_BLD_PSCOMM
- VCSAG_PHANTOM_STATE
- VCSAG_SET_ENVS
- VCSAG_LOG_MSG
- VCSAG_LOGDBG_MSG
- VCSAG_SQUEEZE_SPACES
- コンテナをサポートするエージェントフレームワーク基本関数
- スクリプトのエントリポイントの例
- エージェントメッセージのログ
- カスタムエージェントの作成
- スクリプトベースの IMF 対応カスタムエージェントの作成
- エージェントのテスト
- 静的タイプ属性
- 静的属性について
- 静的タイプ属性の定義
- ActionTimeout
- AdvDbg
- AEPTimeout
- AgentClass
- AgentDirectory
- AgentFailedOn
- AgentFile
- AgentPriority
- AgentReplyTimeout
- AgentStartTimeout
- AlertOnMonitorTimeouts
- ArgList
- AttrChangedTimeout
- AvailableMeters
- CleanRetryLimit
- CleanTimeout
- CloseTimeout
- ContainerOpts
- ConfInterval
- EPClass
- EPPriority
- ExternalStateChange
- FaultOnMonitorTimeouts
- FaultPropagation
- FireDrill
- IMF
- IMFRegList
- InfoInterval
- InfoTimeout
- IntentionalOffline
- LevelTwoMonitorFreq
- LogDbg
- LogFileSize
- LogViaHalog
- ManageFaults
- Meters
- MeterControl
- MeterRegList
- MeterRetryLimit
- MeterTimeout
- MonitorInterval
- MonitorStatsParam
- MonitorTimeout
- MigrateTimeout
- MigrateWaitLimit
- NumThreads
- OfflineMonitorInterval
- OfflineTimeout
- OfflineWaitLimit
- OnlineClass
- OnlinePriority
- OnlineRetryLimit
- OnlineTimeout
- OnlineWaitLimit
- OpenTimeout
- Operations
- RegList
- RestartLimit
- ScriptClass
- ScriptPriority
- SourceFile
- SupportedActions
- SupportedOperations
- ToleranceLimit
- 状態の遷移図
- 国際化されたメッセージ
- 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);}