JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle Solaris Cluster Reference Manual     Oracle Solaris Cluster 3.3 3/13
search filter icon
search icon

Document Information

Preface

Introduction

OSC33 1

OSC33 1cl

OSC33 1ha

OSC33 1m

OSC33 3ha

scds_calls(3HA)

scds_close(3HA)

scds_error_string(3HA)

scds_error_string_i18n(3HA)

scds_failover_rg(3HA)

scds_fm_action(3HA)

scds_fm_net_connect(3HA)

scds_fm_net_disconnect(3HA)

scds_fm_print_probes(3HA)

scds_fm_sleep(3HA)

scds_fm_tcp_connect(3HA)

scds_fm_tcp_disconnect(3HA)

scds_fm_tcp_read(3HA)

scds_fm_tcp_write(3HA)

scds_free_ext_property(3HA)

scds_free_netaddr_list(3HA)

scds_free_net_list(3HA)

scds_free_port_list(3HA)

scds_get_current_method_name(3HA)

scds_get_ext_property(3HA)

scds_get_fullname(3HA)

scds_get_fullname_nodeid(3HA)

scds_get_netaddr_list(3HA)

scds_get_port_list(3HA)

scds_get_resource_group_name(3HA)

scds_get_resource_name(3HA)

scds_get_resource_type_name(3HA)

scds_get_rg_hostnames(3HA)

scds_get_rg_hostnames_zone(3HA)

scds_get_rs_hostnames(3HA)

scds_get_zone_name(3HA)

scds_hasp_check(3HA)

scds_initialize(3HA)

scds_is_zone_cluster(3HA)

scds_pmf_get_status(3HA)

scds_pmf_restart_fm(3HA)

scds_pmf_signal(3HA)

scds_pmf_start(3HA)

scds_pmf_start_env(3HA)

scds_pmf_stop(3HA)

scds_pmf_stop_monitoring(3HA)

scds_print_netaddr_list(3HA)

scds_print_net_list(3HA)

scds_print_port_list(3HA)

scds_property_functions(3HA)

scds_restart_resource(3HA)

scds_restart_rg(3HA)

scds_simple_net_probe(3HA)

scds_simple_probe(3HA)

scds_svc_wait(3HA)

scds_syslog(3HA)

scds_syslog_debug(3HA)

scds_timerun(3HA)

scha_calls(3HA)

scha_cluster_close(3HA)

scha_cluster_get(3HA)

scha_cluster_getlogfacility(3HA)

scha_cluster_getnodename(3HA)

scha_cluster_getnodename_zone(3HA)

scha_cluster_get_zone(3HA)

scha_cluster_getzone(3HA)

scha_cluster_open(3HA)

scha_cluster_open_zone(3HA)

scha_control(3HA)

scha_control_zone(3HA)

scha_resource_close(3HA)

scha_resource_get(3HA)

scha_resource_get_zone(3HA)

scha_resourcegroup_close(3HA)

scha_resourcegroup_get(3HA)

scha_resourcegroup_get_zone(3HA)

scha_resourcegroup_open(3HA)

scha_resourcegroup_open_zone(3HA)

scha_resource_open(3HA)

scha_resource_open_zone(3HA)

scha_resource_setstatus(3HA)

scha_resource_setstatus_zone(3HA)

scha_resourcetype_close(3HA)

scha_resourcetype_get(3HA)

scha_resourcetype_get_zone(3HA)

scha_resourcetype_open(3HA)

scha_resourcetype_open_zone(3HA)

scha_strerror(3HA)

scha_strerror_i18n(3HA)

OSC33 4

OSC33 5

OSC33 5cl

OSC33 7

OSC33 7p

Index

scds_fm_action

- take action after probe completion function

Synopsis

cc [flags…] -I /usr/cluster/include file -L /usr/cluster/lib -l dsdev
#include <rgm/libdsdev.h>

scha_err_t scds_fm_action(scds_handle_t handle, int probe_status, long elapsed_milliseconds);

Description

The scds_fm_action() function uses the probe_status of the data service in conjunction with the past history of failures to take one of the following actions:

Use the value of the input probe_status argument to indicate the severity of the failure. For example, you might consider a failure to connect to an application as a complete failure, but a failure to disconnect as a partial failure. In the latter case you would have to specify a value for probe_status between 0 and SCDS_PROBE_COMPLETE_FAILURE.

The DSDL defines SCDS_PROBE_COMPLETE_FAILURE as 100. For partial probe success or failure, use a value between 0 and SCDS_PROBE_COMPLETE_FAILURE.

Successive calls to scds_fm_action() compute a failure history by summing the value of the probe_status input parameter over the time interval defined by the Retry_interval property of the resource. Any failure history older than Retry_interval is purged from memory and is not used towards making the restart or failover decision.

The scds_fm_action() function uses the following algorithm to choose which action to take:

Restart

If the accumulated history of failures reaches SCDS_PROBE_COMPLETE_FAILURE, scds_fm_action() restarts the resource by calling the STOP method of the resource followed by the START method. It ignores any PRENET_START or POSTNET_STOP methods defined for the resource type.

The status of the resource is set to SCHA_RSSTATUS_DEGRADED by making a scha_resource_setstatus() call, unless the resource is already set.

If the restart attempt fails because the START or STOP methods of the resource fail, a scha_control() is called with the GIVEOVER option to fail the resource group over to another node or zone. If the scha_control() call succeeds, the resource group is failed over to another cluster node or zone, and the call to scds_fm_action() never returns.

Upon a successful restart, failure history is purged. Another restart is attempted only if the failure history again accumulates to SCDS_PROBE_COMPLETE_FAILURE.

Failover

If the number of restarts attempted by successive calls to scds_fm_action() reaches the Retry_count value defined for the resource, a failover is attempted by making a call to scha_control() with the GIVEOVER option.

The status of the resource is set to SCHA_RSSTATUS_FAULTED by making a scha_resource_setstatus() call, unless the resource is already set.

If the scha_control() call fails, the entire failure history maintained by scds_fm_action() is purged.

If the scha_control() call succeeds, the resource group is failed over to another cluster node or zone, and the call to scds_fm_action() never returns.

No Action

If the accumulated history of failures remains below SCDS_PROBE_COMPLETE_FAILURE, no action is taken. In addition, if the probe_status value is 0, which indicates a successful check of the service, no action is taken, irrespective of the failure history.

The status of the resource is set to SCHA_RSSTATUS_OK by making a scha_resource_setstatus() call, unless the resource is already set.

Parameters

The following parameters are supported:

handle

The handle that is returned from scds_initialize(3HA).

probe_status

A number you specify between 0 and SCDS_PROBE_COMPLETE_FAILURE that indicates the status of the data service. A value of 0 implies that the recent data service check was successful. A value of SCDS_PROBE_COMPLETE_FAILURE means complete failure and implies that the service has completely failed. You can also supply a value in between 0 and SCDS_PROBE_COMPLETE_FAILURE that implies a partial failure of the service.

elapsed_milliseconds

The time, in milliseconds, to complete the data service check. This value is reserved for future use.

Return Values

The scds_fm_action() function returns the following values:

0

The function succeeded.

nonzero

The function failed.

Errors

SCHA_ERR_NOERR

No action was taken, or a restart was successfully attempted.

SCHA_ERR_FAIL

A failover attempt was made but it did not succeed.

SCHA_ERR_NOMEM

System is out of memory.

Files

/usr/cluster/include/rgm/libdsdev.h

Include file

/usr/cluster/lib/libdsdev.so

Library

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
SUNWscdev
Interface Stability
Evolving

See Also

scds_fm_sleep(3HA), scds_initialize(3HA), scha_calls(3HA), scha_control(3HA), scds_fm_print_probes(3HA), scha_resource_setstatus(3HA), attributes(5)