NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | FILES | ATTRIBUTES | SEE ALSO
cc [flags…]-I /usr/cluster/include file -L /usr/cluster/lib -l scha #include <scha.h>scha_err_t scha_get_function(handle-type, const char *tag...);
The Sun Cluster library functions scha_resource_get(3HA), scha_resourcetype_get(3HA), scha_resourcegroup_get(3HA), scha_cluster_get(3HA), scha_control(3HA), and scha_strerror(3HA) provide an interface to be used in the implementation of callback methods and monitors of resource types. The resource types represent services that are controlled by the cluster's Resource Group Manager (RGM) facility.
The "get" functions access cluster configuration information and all have the same general signature in that they take a handle-type argument returned from a previous call to an "open" function that indicates the object in the cluster configuration that is to be accessed. A tag argument indicates the property of the object that is to be accessed. The value of tag determines whether additional arguments are needed in the variable argument list and the type of a final "out" argument through which the requested information is returned. Repeated "get" calls can be made using the same handle until a "close" call which invalidates the handle and frees any memory allocated for values returned from the "get" calls.
Memory, if needed to return a value, is allocated for each "get" call. Space allocated to return a value in one call will not be overwritten and reused by subsequent calls.
The scha_control(3HA) function also has a tag argument that indicates a control operation, but does not return information in an output argument.
The man pages for the individual functions should be referred to for the macro values accepted as tag argument values for each function, and variable argument types for each tag. The types of output arguments are described below.
There is one set of scha_err_t enum-type return values for the scha functions. The enum symbols, integer values, and meaning of the exit codes are described in the RETURN VALUES section.
The scha_strerror(3HA) function converts an scha_err_t code returned by an scha() function to the appropriate error message.
An unsigned integer type. This type is defined in the system header file <sys/types.h>
This type is defined in the system header file <sys/types.h>
typedef enum { B_FALSE, B_TRUE } boolean_t;
Enum type indicating an On_Off_switch or Monitor_switch resource property value
typedef enum scha_switch { SCHA_SWITCH_DISABLED = 0, SCHA_SWITCH_ENABLED } scha_switch_t;
Enum type indicating a resource state
typedef enum scha_rsstate { SCHA_RSSTATE_ONLINE = 0, SCHA_RSSTATE_OFFLINE, SCHA_RSSTATE_START_FAILED, SCHA_RSSTATE_STOP_FAILED, SCHA_RSSTATE_MONITOR_FAILED, SCHA_RSSTATE_ONLINE_NOT_MONITORED, } scha_rsstate_t;
An enum type indicating a resource group state
typedef enum scha_rgstate { SCHA_RGSTATE_UNMANAGED = 0, SCHA_RGSTATE_ONLINE, SCHA_RGSTATE_OFFLINE, SCHA_RGSTATE_PENDING_ONLINE, SCHA_RGSTATE_PENDING_OFFLINE, SCHA_RGSTATE_ERROR_STOP_FAILED } scha_rgstate_t;
An enum type indicating a value for the Failover_Mode resource property
typedef enum scha_failover_mode { SCHA_FOMODE_NONE = 0, SCHA_FOMODE_HARD, SCHA_FOMODE_SOFT } scha_failover_mode_t;
An enum type indicating a value for the Init_nodes resource type property
typedef enum scha_initnodes_flag { SCHA_INFLAG_RG_PRIMARIES = 0, SCHA_INFLAG_RT_INSTALLED_NODES } scha_initnodes_flag_t;
An enum type indicating whether a node is up or down
typedef enum scha_node_state { SCHA_NODE_UP = 0, SCHA_NODE_DOWN } scha_node_state_t;
A structure that holds the value of a list of strings
typedef struct scha_str_array { uint_t array_cnt; char **str_array; } scha_str_array_t;
Gives the number elements in the list
A pointer to an array of array_cnt strings
A structure that holds the value of a list of unsigned integers
typedef struct scha_uint_array { uint_t array_cnt; uint_t *int_array; } scha_uint_array_t;
The number of elements in the list
A pointer to an array of array_cnt unsigned integers
This is the structure for returning the status and status message of a resource
typedef struct scha_status_value { scha_rsstatus_t status; char *status_msg; } scha_status_value_t; typedef enum scha_rsstatus { SCHA_RSSTATUS_OK = 0, SCHA_RSSTATUS_OFFLINE, SCHA_RSSTATUS_FAULTED, SCHA_RSSTATUS_DEGRADED, SCHA_RSSTATUS_UNKNOWN } scha_rsstatus_t;
holds an enum value indicating the resource status as set by the resource monitor
This is the structure that is used for returning the value of an extension property
The prop_type structure member indicates the type of the extension property and determines which element of the union is used for the prop_type field and the return values:
SCHA_PTYPE_STRING val_str SCHA_PTYPE_INT val_int SCHA_PTYPE_ENUM val_enum SCHA_PTYPE_BOOLEAN val_boolean SCHA_PTYPE_STRINGARRAY val_strarray typedef struct scha_extprop_value { scha_prop_type_t prop_type; union { char *val_str; int val_int; char *val_enum; boolean_t val_boolean; scha_str_array_t *val_strarray; } val; } scha_extprop_value_t;
The following is a list of the scha_err_t error numbers and the error codes returned by scha_strerror(3HA).
no error was found
not enough swap
invalid resource management handle
invalid input argument
invalid API tag
cluster is reconfiguring
permission denied
resource, resource group, or resource type has been updated since last scha_*_open call
object dependency problem
object is in wrong state
invalid method
invalid node
invalid resource group
invalid resource type
invalid resource
invalid property
sanity-checks failed
bad resource status
internal error was encountered
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE |
ATTRIBUTE VALUE |
---|---|
Availability |
SUNWscdev |
Interface Stability |
Evolving |
scha_cmds(1HA), scha_cluster_get(3HA), scha_control(3HA), scha_resource_get(3HA), scha_resourcegroup_get(3HA), scha_resourcetype_get(3HA), scha_strerror(3HA), attributes(5)
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | FILES | ATTRIBUTES | SEE ALSO