JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle Solaris Cluster Reference Manual
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_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_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_getzone(3HA)

scha_cluster_open(3HA)

scha_control(3HA)

scha_control_zone(3HA)

scha_resource_close(3HA)

scha_resource_get(3HA)

scha_resourcegroup_close(3HA)

scha_resourcegroup_get(3HA)

scha_resourcegroup_open(3HA)

scha_resource_open(3HA)

scha_resource_setstatus(3HA)

scha_resource_setstatus_zone(3HA)

scha_resourcetype_close(3HA)

scha_resourcetype_get(3HA)

scha_resourcetype_open(3HA)

scha_strerror(3HA)

scha_strerror_i18n(3HA)

OSC33 4

OSC33 5

OSC33 5cl

OSC33 7

OSC33 7p

Index

scds_svc_wait

- wait for the specified timeout period for a monitored process to die

Synopsis

cc [flags…] -I /usr/cluster/include file -L /usr/cluster/lib -l dsdev

#include <rgm/libdsdev.h>



scha_err_t scds_svc_wait(scds_handle_t handle, time_t timeout);

Description

The scds_svc_wait() function waits for the specified timeout period for a monitored process group to die. It waits upon all process groups started by scds_pmf_start(3HA) for the resource passed to the calling START method. The scds_svc_wait() function uses the Retry_interval and Retry_count properties of the resource to limit the number of process deaths to wait on. If the number of process deaths during Retry_interval reaches the value of Retry_count, scds_svc_wait() returns with SCHA_ERR_FAIL.

If the number of process failures is below the value of Retry_count, the process is restarted and scds_svc_wait() waits the full timeout period for further process deaths. The counting of process failures spans successive calls to scds_svc_wait().

Parameters

The following parameters are supported:

handle

The handle returned from scds_initialize(3HA)

timeout

Timeout period measured in seconds

Return Values

The scds_svc_wait() function returns the following:

0

The function succeeded.

nonzero

The function failed.

Errors

SCHA_ERR_TIMEOUT

The function timed out.

SCHA_ERR_NOERR

No process deaths occurred, or a process was successfully restarted.

SCHA_ERR_FAIL

The number of failures reached the value of the Retry_count property.

SCHA_ERR_STATE

A system error or an otherwise unexpected error occurred.

See scha_calls(3HA) for a description of other error codes.

Examples

Example 1 Using scds_svc_wait() in a START Method

The following example shows how you could use scds_svc_wait in a START method to return early if the service fails to start. After starting an application process with scds_pmf_start(), a START method must wait for the application to fully initialize itself and become available before returning success. If the application fails to start, the START method must wait the entire Start_timeout period before returning with failure. Using scds_svc_wait(), as in the following example, allows START methods to restart applications up to Retry_count times and return early with failure from the START method if the service is unable to start up.

/*

 * scds_svc_wait is a subroutine in a START method to

 * check that the service is fully available before returning.

 * Calls svc_probe() to check service availability.

 */

int

svc_wait(scds_handle_t handle)

{

    while (1) {

        /* Wait for 5 seconds */

        if (scds_svc_wait(handle, 5) != SCHA_ERR_NOERR) {

            scds_syslog(LOG_ERR, "Service failed to start.");

            return (1);        /* Start Failure */

        }

        /* Check if service is fully up every 5 seconds */

        if (svc_probe(handle) == 0) {

            scds_syslog(LOG_INFO, "Service started successfully.");

            return (0);

        }

    }

    return (0);

}

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_initialize(3HA), scds_pmf_start(3HA) , scha_calls(3HA), attributes(5), r_properties(5)

Notes