Go to main content

Developing Data Services

Exit Print View

Updated: August 2018
 
 

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 20  xfnts_start.c Method
/*
* 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);
}