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

## `Monitor_check` Method Code Listing

This method verifies the existence of the directory that is pointed to by the `Confdir` property. The RGM calls `Monitor_check` when the `PROBE` method fails over the data service to a new node. The RGM also does so to check nodes that are potential masters.

Example A-8 `dns_monitor_check` Method

    #!/bin/ksh#
    # Monitor check  Method for DNS.
    #
    # The RGM calls this method whenever the fault monitor fails the data service
    # over to a new node. Monitor_check calls the Validate method to verify
    # that the configuration directory and files are available on the new node.

    #pragma ident   “@(#)dns_monitor_check 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

    # Obtain the full path for the Validate method from
    # the RT_basedir property of the resource type.
    RT_BASEDIR=`scha_resource_get -O RT_basedir -R $RESOURCE_NAME \
    -G $RESOURCEGROUP_NAMÈ

    # Obtain the name of the Validate method for this resource.
    VALIDATE_METHOD=`scha_resource_get -O VALIDATE -R $RESOURCE_NAME \
    -G $RESOURCEGROUP_NAMÈ

    # Obtain the value of the Confdir property in order to start the
    # data service. Use the resource name and the resource group entered to
    # obtain the Confdir value set at the time of adding the resource.
    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 extension
    # properties. Use awk to get only the value of the extension property.
    CONFIG_DIR=`echo $config_info | awk `{print $2}'`

    # Call the validate method so that the dataservice can be failed over
    # successfully to the new node.
    $RT_BASEDIR/$VALIDATE_METHOD -R $RESOURCE_NAME -G $RESOURCEGROUP_NAME \
    -T $RESOURCETYPE_NAME -x Confdir=$CONFIG_DIR

    # Log a message indicating that monitor check was successful.
    if [ $? -eq 0 ]; then
       logger -p ${SYSLOG_FACILITY}.info -t [$SYSLOG_TAG] \
          “${ARGV0} Monitor check for DNS successful.”
       exit 0
    else
       logger -p ${SYSLOG_FACILITY}.err -t [$SYSLOG_TAG] \
          “${ARGV0} Monitor check for DNS not successful.”
       exit 1
    fi

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