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
ArgListValues attribute for different agents versions
For agents registered as V40 and earlier, the ArgListValues attribute is an ordered list of attribute values. The attribute values are listed in the same order as in the ArgList attribute.
For example, if Type "Foo" is defined in the file types.cf as:
Type Foo ( str Name int IntAttr str StringAttr str VectorAttr[] str AssocAttr{} static str ArgList[] = { IntAttr, StringAttr, VectorAttr, AssocAttr } )
And if a resource "Bar" is defined in the file main.cf as:
Foo Bar ( IntAttr = 100 StringAttr = "Oracle" VectorAttr = { "vol1", "vol2", "vol3" } AssocAttr = { "disk1" = "1024", "disk2" = "512" } )
Then, for V50 and later, the parameter attr_val is:
attr_val[0] = "IntAttr" attr_val[1] = "1" // Number of components in // IntAttr attr value attr_val[2] = "100" // Value of IntAttr attr_val[3] = "StringAttr" attr_val[4] = "1" // Number of components in // StringAttr attr value attr_val[5] = "Oracle" // Value of StringAttr attr_val[6] = "VectorAttr" attr_val[7] = "3" // Number of components in // VectorAttr attr value attr_val[8] = "vol1" attr_val[9] = "vol2" attr_val[10] = "vol3" attr_val[11] = "AssocAttr" attr_val[12] = "4" // Number of components in // AssocAttr attr value attr_val[13] = "disk1" attr_val[14] = "1024" attr_val[15] = "disk2" attr_val[16] = "512" attr_val[17] = NULL // Last element
Or, for V40 and earlier, the parameter attr_val is:
attr_val[0] ===> "100" // Value of IntAttr, the first // ArgList attribute. attr_val[1] ===> "Oracle" // Value of StringAttr. attr_val[2] ===> "3" // Number of components in // VectorAttr. attr_val[3] ===> "vol1" attr_val[4] ===> "vol2" attr_val[5] ===> "vol3" attr_val[6] ===> "4" // Number of components in // AssocAttr. attr_val[7] ===> "disk1" attr_val[8] ===> "1024" attr_val[9] ===> "disk2" attr_val[10]===> "512" attr_val[11]===> NULL // Last element.