Please enter search query.
Search <book_title>...
InfoScale™ 9.0 Cluster Server Agent Developer's Guide - AIX, Linux, Solaris, Windows
Last Published:
2025-04-13
Product(s):
InfoScale & Storage Foundation (9.0)
Platform: AIX,Linux,Solaris,Windows
- Introduction
- Agent entry point overview
- About agent entry points
- Agent entry points described
- About the action entry point
- About the info entry point
- Considerations for using C++ or script entry points
- About the agent information file
- About the ArgList and ArgListValues attributes
- Creating entry points in C++
- About creating entry points in C++
- Syntax for C++ entry points
- Agent framework primitives
- Agent Framework primitives for container support
- Creating entry points in scripts
- About creating entry points in scripts
- Syntax for script entry points
- Agent framework primitives
- VCSAG_GET_ATTR_VALUE
- Agent Framework primitives with container support
- Example script entry points
- Logging agent messages
- Building a custom agent
- Building a script based IMF-aware custom agent
- Creating XML file required for AMF plugins to do resource registration for online and offline state monitoring
- Testing agents
- Static type attributes
- About static attributes
- Static type attribute definitions
- AdvDbg
- ArgList
- State transition diagram
- Internationalized messages
- Troubleshooting VCS resource's unexpected behavior using First Failure Data Capture (FFDC)
- Appendix A. Using pre-5.0 VCS agents
VCSAgGetCookie
void *VCSAgGetCookie(const char *name);
This primitive requests that the agent framework get the cookie set by an earlier call to VCSAgSetCookie2(). It returns NULL if cookie was not previously set. This primitive can be called from any entry point. For example:
#include "VCSAgApi.h" ... // Assume that the online, offline, and monitor // operations on resource require a certain key. Also // assume that obtaining this key is time consuming, but // that it can be reused until this process is terminated. // // In this example, the open entry point obtains the key // and stores it as a cookie. Subsequent online, // offline, and monitor entry points get the cookie and // use the key. // // Note that the cookie name can be any unique string. // This example uses the resource name as the cookie name. // void *get_key() { ... } void res_open(const char *res_name, void **attr_val) { if (VCSAgGetCookie(res_name) == NULL) { void *key = get_key(); VCSAgSetCookie2(res_name, key); } } VCSAgResState res_monitor(const char *res_name, void **attr_val, int *conf_level_ptr) { VCSAgResState state = VCSAgResUnknown; *conf_level_ptr = 0; void *key = VCSAgGetCookie(res_name); if (key == NULL) { // Take care of the rare cases when the open // entry point failed to obtain the key and // set the the cookie. key = get_key(); VCSAgSetCookie2(res_name, key); } // Use the key for testing if the resource is // online, and set the state accordingly. ... return state; }