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
Monitor entry point with intentional offline
This script includes the intentional offline functionality for the MyCustomApp agent.
See About on-off, on-only, and persistent resources .
Note that the method to detect intentional offline of an application depends on the type of application. The following example assumes that the application writes a status code into a file if the application is intentionally stopped.
#!/bin/sh . "${CLUSTER_HOME}/bin/ag_i18n_inc.sh" ResName=$1; shift; VCSAG_SET_ENVS $ResName // Obtain the attribute values from ArgListValues parse_arglist_values(); RETVAL=$?
if [ ${RETVAL} -eq ${VCSAG_RES_UNKNOWN} ]; then // Could not get all the required attributes from ArgListValues exit $VCSAG_RES_UNKNOWN; fi // Check if the application's process is present in the ps // output check_if_app_is_running(); RETVAL=$? if [ ${REVAL} -eq ${VCSAG_RES_ONLINE} ]; then // Application process found exit $VCSAG_RES_ONLINE; fi // Application process was not found; Check if user gracefully // shutdown the application grep "MyCustomAppCode 123 : User initiated shutdown command" ${APPLICATION_CREATED_STATUS_FILE} RETVAL=$? if [ ${REVAL} -eq 0 ]; then // Found MyCustomAppCode 123 in the application's status // file that gets created by the application on graceful //shutdown exit $VCSAG_RES_INTENTIONALOFFLINE; else // Did not find MyCustomAppCode 123; hence application has // crashed or gone down unintentionally exit $VCSAG_RES_OFFLINE; fi // Monitor should never come here exit $VCSAG_RES_UNKNOWN;