Sun Cluster データサービス開発ガイド (Solaris OS 版)

xfnts_update メソッドのコードリスト

プロパティーが変更された場合、RGM は Update メソッドを呼び出して、そのことを動作中のリソースに通知します。管理アクションがリソースまたはそのグループのプロパティーの設定に成功したあとに、RGM は Update を実行します。


例 C–8 xfnts_update.c

#pragma ident "@(#)xfnts_update.c  1.10     01/01/18 SMI"

/*
 * Copyright (c) 1998-2006 by Sun Microsystems, Inc.
 * All rights reserved.
 *
 * xfnts_update.c - HA-XFS の更新メソッド
 */

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <rgm/libdsdev.h>

/*
 * リソースのプロパティーが更新された可能性がある。
 * このような更新可能なプロパティーはすべて障害モニターに関連するもので
 * あるため、障害モニターを再起動する必要がある。
 */

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

   /* RGM から渡された引数を処理して、syslog を初期化する。 */
   if (scds_initialize(&scds_handle, argc, argv) != SCHA_ERR_NOERR)
{
      scds_syslog(LOG_ERR, “Failed to initialize the handle.”);
      return (1);
   }

   /*
    * 障害モニターがすでに動作していることを検査し、
    * 動作している場合、障害モニターを停止および再起動する。
    * scds_pmf_restart_fm() への 2 番目のパラメータは、再起動する
    * 必要がある障害モニターのインスタンスを一意に識別する。
    */

   scds_syslog(LOG_INFO, “Restarting the fault monitor.”);
   result = scds_pmf_restart_fm(scds_handle, 0);
   if (result != SCHA_ERR_NOERR) {
      scds_syslog(LOG_ERR,
          “Failed to restart fault monitor.”);
      /* scds_initialize が割り当てたすべてのメモリーを解放する。 */
      scds_close(&scds_handle);
      return (1);
   }

   scds_syslog(LOG_INFO,
       “Completed successfully.”);

   /* scds_initialize が割り当てたすべてのメモリーを解放する。 */
   scds_close(&scds_handle);

   return (0);
}