Skip Navigation Links | |
Exit Print View | |
![]() |
Oracle Solaris Cluster Data Services Developer's Guide Oracle Solaris Cluster 4.0 |
1. Overview of Resource Management
3. Resource Management API Reference
6. Data Service Development Library
8. Sample DSDL Resource Type Implementation
9. Oracle Solaris Cluster Agent Builder
12. Cluster Reconfiguration Notification Protocol
A. Sample Data Service Code Listings
Resource Type Registration File Listing
Monitor_start Method Code Listing
Monitor_stop Method Code Listing
Monitor_check Method Code Listing
B. DSDL Sample Resource Type Code Listings
C. Requirements for Non-Cluster-Aware Applications
D. Document Type Definitions for the CRNP
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. In the sample application, the Start method activates the in.named (DNS) daemon on that node.
Example A-2 dns_svc_start Method
#!/bin/ksh # # Start Method for HA-DNS. # # This method starts the data service under the control of PMF. Before starting # the in.named process for DNS, it performs some sanity checks. The PMF tag for # the data service is $RESOURCE_NAME.named. PMF tries to start the service a # specified number of times (Retry_count) and if the number of attempts exceeds # this value within a specified interval (Retry_interval) PMF reports a failure # to start the service. Retry_count and Retry_interval are both properties of the # resource set in the RTR file. #pragma ident “@(#)dns_svc_start 1.1 12/01/24” ############################################################################### # Parse program arguments. # function parse_args # [args ...] { typeset opt while getopts `R:G:T:' opt do case “$opt” in R) # Name of the DNS resource. RESOURCE_NAME=$OPTARG ;; G) # Name of the resource group in which the resource is # configured. RESOURCEGROUP_NAME=$OPTARG ;; T) # Name of the resource type. RESOURCETYPE_NAME=$OPTARG ;; *) logger -p ${SYSLOG_FACILITY}.err \ -t [$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME] \ “ERROR: Option $OPTARG unknown” exit 1 ;; esac done } ############################################################################### # MAIN # ############################################################################## export PATH=/bin:/usr/bin:/usr/cluster/bin:/usr/sbin:/usr/proc/bin:$PATH # Obtain the syslog facility to use to log messages. SYSLOG_FACILITY=`scha_cluster_get -O SYSLOG_FACILITY` # Parse the arguments that have been passed to this method parse_args “$@” PMF_TAG=$RESOURCE_NAME.named SYSLOG_TAG=$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME # Get the value of the Confdir property of the resource in order to start # DNS. Using the resource name and the resource group entered, find the value of # Confdir value set by the cluster administrator when adding theresource. config_info=scha_resource_get -O Extension -R $RESOURCE_NAME \ -G $RESOURCEGROUP_NAME Confdir` # scha_resource_get returns the “type” as well as the “value” for the extension # properties. Get only the value of the extension property. CONFIG_DIR=`echo $config_info | awk `{print $2}'` # Check if $CONFIG_DIR is accessible. if [ ! -d $CONFIG_DIR ]; then logger -p ${SYSLOG_FACILITY}.err -t [$SYSLOG_TAG] \ “${ARGV0} Directory $CONFIG_DIR missing or not mounted” exit 1 fi # Change to the $CONFIG_DIR directory in case there are relative # path names in the data files. cd $CONFIG_DIR # Check that the named.conf file is present in the $CONFIG_DIR directory. if [ ! -s named.conf ]; then logger -p ${SYSLOG_FACILITY}.err -t [$SYSLOG_TAG] \ “${ARGV0} File $CONFIG_DIR/named.conf is missing or empty” exit 1 fi # Get the value for Retry_count from the RTR file. RETRY_CNT=`scha_resource_get -O Retry_count -R $RESOURCE_NAME \ -G $RESOURCEGROUP_NAMÈ # Get the value for Retry_interval from the RTR file. Convert this value, which is in # seconds, to minutes for passing to pmfadm. Note that this is a conversion with # round-up, for example, 50 seconds rounds up to one minute. ((RETRY_INTRVAL = `scha_resource_get -O Retry_interval -R $RESOURCE_NAME \ -G $RESOURCEGROUP_NAMÈ 60)) # Start the in.named daemon under the control of PMF. Let it crash and restart # up to $RETRY_COUNT times in a period of $RETRY_INTRVAL; if it crashes # more often than that, PMF will cease trying to restart it. If there is a # process already registered under the tag <$PMF_TAG>, then, PMF sends out # an alert message that the process is already running. echo “Retry interval is “$RETRY_INTRVAL pmfadm -c $PMF_TAG.named -n $RETRY_CNT -t $RETRY_INTRVAL \ /usr/sbin/in.named -c named.conf # Log a message indicating that HA-DNS has been started. if [ $? -eq 0 ]; then logger -p ${SYSLOG_FACILITY}.info -t [$SYSLOG_TAG] \ “${ARGV0} HA-DNS successfully started” fi exit 0