Skip Navigation Links
Exit Print View
| Oracle Solaris Cluster Data Services Developer's Guide Oracle Solaris Cluster 4.1

Search Scope:

- This Document
- Entire Library

## `xfnts_start` Method Code Listing

The RGM runs the `Start` method on a cluster node when the resource group that contains the data service resource is brought online on that node. The RGM also does so when the resource is enabled. The `xfnts_start` method activates the `xfs` daemon on that node.

Example B-6 `xfnts_start.c`

    /*
     * Copyright (c) 1998, 2012, Oracle and/or its affiliates.
     * All rights reserved.
     *
     * xfnts_svc_start.c - Start method for HA-XFS
     */

    #pragma ident “@(#)xfnts_svc_start.c 1.13 01/01/18 SMI”

    #include <rgm/libdsdev.h>
    #include “xfnts.h”

    /*
     * The start method for HA-XFS. Does some sanity checks on
     * the resource settings then starts the HA-XFS under PMF with
     * an action script.
     */

    int
    main(int argc, char *argv[])
    {
       scds_handle_t   scds_handle;
       int rc;

       /*
        * Process all the arguments that have been passed to us from RGM
        * and do some initialization for syslog
        */

       if (scds_initialize(&scds_handle, argc, argv) != SCHA_ERR_NOERR)
    {
          scds_syslog(LOG_ERR, “Failed to initialize the handle.”);
          return (1);
       }

       /* Validate the configuration and if there is an error return back */
       rc = svc_validate(scds_handle);
       if (rc != 0) {
          scds_syslog(LOG_ERR,
              “Failed to validate configuration.”);
          return (rc);
       }

       /* Start the data service, if it fails return with an error */
       rc = svc_start(scds_handle);
       if (rc != 0) {
          goto finished;
       }

       /* Wait for the service to start up fully */
       scds_syslog_debug(DBG_LEVEL_HIGH,
           “Calling svc_wait to verify that service has started.”);

       rc = svc_wait(scds_handle);

       scds_syslog_debug(DBG_LEVEL_HIGH,
           “Returned from svc_wait”);

       if (rc == 0) {
          scds_syslog(LOG_INFO, “Successfully started the service.”);
       } else {
          scds_syslog(LOG_ERR, “Failed to start the service.”);
       }

    finished:
       /* Free up the Environment resources that were allocated */
       scds_close(&scds_handle);

       return (rc);
    }

Copyright © 2000, 2012, Oracle and/or its affiliates. All rights reserved. Legal Notices |