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
VCSAgLockFile
int VCSAgLockFile(const char *fname, VCSAgLockType ltype, VCSAgBlockingType btype, VCSAgErrnoType *errp)
Get a read or write (that is, shared or exclusive) lock on the given file. Both blocking and non-blocking modes are supported. Returns 0 if the lock could be obtained, or returns VCSAgErrWouldBlock if non-blocking is requested and the lock is busy. Otherwise returns -1. Each thread is considered a distinct owner of locks.
Explanation of arguments to the function:
fname | File name |
ltype | Lock type For example: enum VCSAgLockType { VCSAgExclusiveLock, //for write operation VCSAgSharedLock //for read operation } |
btype | Blocking type For example: enum VCSAgBlockingType{ VCSAgBlocking, VCSAgNonBlocking } |
errp | Output parameter to return the error value. |
Warning:
Do not do any operations on the file (ex, open, or close) within this process, except through acquiring the read operation (shared lock) or write operation (exclusive lock) or VCSAgUnlock() interface.