Please enter search query.
Search <book_title>...
Cluster Server 8.0.1 Agent Developer's Guide - Windows
Last Published:
2022-05-19
Product(s):
InfoScale & Storage Foundation (8.0.1)
Platform: Windows
- Introduction
- Agent entry point overview
- About agent entry points
- Agent entry points described
- About the open entry point
- About the monitor entry point
- About the online entry point
- About the offline entry point
- About the clean entry point
- About the action entry point
- About the info entry point
- About the attr_changed entry point
- About the close entry point
- About the shutdown entry point
- About the imf_init entry point
- About the imf_register entry point
- About the imf_getnotification entry point
- About the migrate entry point
- About the meter entry point
- Return values for entry points
- 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++
- Data Structures
- Syntax for C++ entry points
- Agent framework primitives
- VCSAgGetMonitorLevel
- VCSAgGetFwVersion
- VCSAgGetRegVersion
- VCSAgRegisterEPStruct
- VCSAgSetCookie2
- VCSAgRegister
- VCSAgUnregister
- VCSAgGetCookie
- VCSAgStrlcpy
- VCSAgStrlcat
- VCSAgSnprintf
- VCSAgCloseFile
- VCSAgDelString
- VCSAgExec
- VCSAgExecWithTimeout
- VCSAgGenSnmpTrap
- VCSAgSendTrap
- VCSAgLockFile
- VCSAgInitEntryPointStruct
- VCSAgSetStackSize
- VCSAgUnlockFile
- VCSAgValidateAndSetEntryPoint
- VCSAgSetLogCategory
- VCSAgGetProductName
- VCSAgDecryptKey
- VCSAgCloseFile
- VCSAgCloseFilePtr
- VCSAgCloseFp
- VCSAgCloseFpPtr
- VCSAgCloseDirp
- VCSAgCloseDirpPtr
- VCSAgDelPasswdPtr
- VCSAgDelString
- VCSAgDelStringPtr
- Agent Framework primitives for container support
- Creating entry points in scripts
- About creating entry points in scripts
- Syntax for script entry points
- Syntax for the monitor script
- Syntax for the online script
- Syntax for the offline script
- Syntax for the clean script
- Syntax for the action script
- Syntax for the attr_changed script
- Syntax for the info script
- Syntax for the open script
- Syntax for the close script
- Syntax for the shutdown script
- Syntax for the imf_init script
- Syntax for the imf_register script
- Syntax for the imf_getnotification script
- Syntax for migrate script
- Syntax for meter script
- Agent framework primitives
- VCSAG_GET_MONITOR_LEVEL
- VCSAG_GET_AGFW_VERSION
- VCSAG_GET_REG_VERSION
- VCSAG_SET_RES_EP_TIMEOUT
- VCSAG_GET_ATTR_VALUE
- To get number of keys in the key list attribute and the index of attribute in argument list
- To get a particular key in the key list and vector attribute
- To get the number of keys in the association attribute, and index of attribute in the argument list
- To get a particular key or value in the association attribute:
- 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
- Agent Framework primitives with container support
- Example script entry points
- Logging agent messages
- Building a custom agent
- Files for use in agent development
- Creating the type definition file for a custom agent
- Naming convention for the type definition file
- Example: FileOnOffTypes.cf
- Example: Type definition for a custom agent that supports intentional offline
- Requirements for creating the agentTypes.xml file
- Configuring attribute properties
- Requirements for creating the agentTypes.cf file
- Adding the custom type definition to the configuration
- Building a custom agent on UNIX
- Installing the custom agent
- Defining resources for the custom resource type
- Agent framework versions details
- Building a script based IMF-aware custom agent
- About building a script based IMF-aware custom agent
- Linking AMF plugins with script agent
- Creating XML file required for AMF plugins to do resource registration for online and offline state monitoring
- Example of amfregister.xml for registration of process-based resource with AMF for online monitoring
- Example of amfregister.xml for registration of process-based resource with AMF for offline monitoring
- Example of amfregister.xml for online and offline IMF monitoring for a given process
- Examples for adding RepearName tag in amfregister.xml
- Adding IMF and IMFRegList attributes in configuration
- Monitor without IMF integration
- Monitor without IMF but with LevelTwo monitor frequency
- Monitor with IMF integration
- Monitor with IMF but with LevelTwo monitor frequency
- Installing the IMF-aware script-based custom agent
- Testing agents
- Static type attributes
- About static attributes
- Static type attribute definitions
- AdvDbg
- AEPTimeout
- AgentDirectory
- AgentFailedOn
- ArgList
- AvailableMeters
- CleanRetryLimit
- CleanRetryLimit
- ContainerOpts
- ConfInterval
- EPPriority
- ExternalStateChange
- FaultPropagation
- FireDrill
- IMF
- IMFRegList
- InfoInterval
- IntentionalOffline
- LevelTwoMonitorFreq
- LogDbg
- LogFileSize
- LogViaHalog
- ManageFaults
- Meters
- MeterControl
- MeterRegList
- MeterRetryLimit
- MeterTimeout
- MinCompatAgentVersion
- MonitorInterval
- MonitorMethod
- MonitorStatsParam
- MigrateTimeout
- MigrateWaitLimit
- NumThreads
- OfflineMonitorInterval
- OfflineWaitLimit
- OnlineClass
- OnlinePriority
- OnlineRetryLimit
- OnlineWaitLimit
- Operations
- Platform
- RegList
- ResFaultPolicy
- RestartLimit
- SourceFile
- SupportedActions
- SupportedOperations
- ToleranceLimit
- TypeDefinitionVersion
- 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
VCSAgCloseFile
voidout VCSAgCloseFile(void *vp);
Use this API to push a thread cancellation cleanup handler for an open file descriptor. The API accepts a FILED file descriptor as parameter. The API closes the file descriptor passed as argument. It does not check if the fd is valid (>= 0).
FILED fd = open("<filename>", ...);
if (fd >= 0) {
pthread_cleanup_push(VCSAgCloseFile, (void *) fd);
// Use fd
pthread_cleanup_pop(1); // Run VCSAgCloseFile to close the file
descriptor
}
else {
// error, could not successfully open file
}