InfoScale™ 9.0 Cluster Server Agent Developer's Guide - 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
About the clean entry point
The clean entry point is called by the agent framework when all ongoing tasks associated with a resource must be terminated and the resource must be taken offline, perhaps forcibly. The entry point receives as input the resource name, an encoded reason describing why the entry point is being called, and the ArgList attribute values. It must return 0 if the operation is successful and 1 if unsuccessful.
The reason for calling the entry point is encoded according to the following enum type:
enum VCSAgWhyClean { VCSAgCleanOfflineHung, VCSAgCleanOfflineIneffective, VCSAgCleanOnlineHung, VCSAgCleanOnlineIneffective, VCSAgCleanUnexpectedOffline, VCSAgCleanMonitorHung };
For script-based Clean entry points, the Clean reason is passed as an integer:
0 => offline hung 1 => offline ineffective 2 => online hung 3 => online ineffective 4 => unexpected offline 5 => monitor hung
The above is an enum type, so same integer value is passed irrespective of whether the entry point is written in C++ or is script-based.
VCSAgCleanOfflineHung
The offline entry point did not complete within the expected time.
See OfflineTimeout.
VCSAgCleanOfflineIneffective
The offline entry point was ineffective. The monitor entry point scheduled for the resource after the offline entry point invocation returned a status other than OFFLINE.
VCSAgCleanOnlineHung
The online entry point did not complete within the expected time.
( See OnlineTimeout.)
VCSAgCleanOnlineIneffective
The online entry point was ineffective. The monitor entry point scheduled for the resource after the online entry point invocation returned a status other than ONLINE.
VCSAgCleanUnexpectedOffline
The online resource faulted because it was taken offline unexpectedly.
( See ToleranceLimit.)
VCSAgCleanMonitorHung
The online resource faulted because the monitor entry point consistently failed to complete within the expected time.
(See FaultOnMonitorTimeouts.)
The agent supports the following tasks when the clean entry point is implemented:
Automatically restarts a resource on the local system when the resource faults.
See RestartLimit.
Automatically retries the online entry point when the attempt to bring a resource online fails.
See OnlineRetryLimit.
Enables the engine to bring a resource online on another system when the resource faults on the local system.
For the above actions to occur, the clean entry point must run successfully, that is, return an exit code of 0.