プライマリ・コンテンツに移動
Oracle® Data Provider for .NET開発者ガイド
ODAC 12.2c リリース1 (12.2.0.1) for Microsoft Windows
E88311-03
目次へ移動
目次
索引へ移動
索引

前
次

OracleFailoverEventArgsクラス

OracleFailoverEventArgsクラスは、OracleConnection.Failoverイベントのイベント・データを提供します。データベースのフェイルオーバーが発生すると、OracleConnection.Failoverイベントが、イベント・データが格納されているOracleFailoverEventArgsオブジェクトとともにトリガーされます。

クラスの継承

System.Object

  System.EventArgs

    Oracle.DataAccess.Client.OracleFailoverEventArgs

宣言

// C#
public sealed class OracleFailoverEventArgs

要件

プロバイダ ODP.NET管理対象外ドライバ

アセンブリ

Oracle.DataAccess.dll

ネームスペース

Oracle.DataAccess.Client

.NET Framework

3.5, 4.5, 4.6, 4.7

.NETストアド・プロシージャではサポートされません

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例(Oracle.DataAccess.Clientのみ)

// Transparent Application Failover (TAF) Setup
// Refer Oracle® Database Net Services Administrator's Guide
 
// C#
 
using System;
using System.Threading;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
 
class FailoverSample
{
  static void Main(string[] args)
  {
    string constr = "User Id=scott;Password=tiger;Data Source=oracle";
    OracleConnection con = new OracleConnection(constr);
    con.Open();
 
    // Register the event handler OnFailover
    con.Failover += new OracleFailoverEventHandler(OnFailover);
 
    Console.WriteLine("Wait for a failover for 5 seconds");
    Thread.Sleep(5000);
 
    con.Close();
    con.Dispose();
  }

  // TAF callback function 
  static FailoverReturnCode OnFailover(object sender, 
    OracleFailoverEventArgs eventArgs)
  {
    switch (eventArgs.FailoverEvent)
    {
      case FailoverEvent.Begin:
      {
        Console.WriteLine("FailoverEvent.Begin - Failover is starting");
        Console.WriteLine("FailoverType = " + eventArgs.FailoverType);
        break;
      }      
      case FailoverEvent.End:
      {
        Console.WriteLine("FailoverEvent.End - Failover was successful");
        break;
      }
      case FailoverEvent.Reauth:
      {
        Console.WriteLine("FailoverEvent.Reauth - User reauthenticated");
        break;
      }
      case FailoverEvent.Error:
      {
        Console.WriteLine("FailoverEvent.Error - Failover was unsuccessful");
 
        // Sleep for 3 sec and Retry
        Thread.Sleep(3000);
        return FailoverReturnCode.Retry;
      }
      case FailoverEvent.Abort:
      {
        Console.WriteLine("FailoverEvent.Abort - Failover was unsuccessful");
        break;
      }
      default:
      {
        Console.WriteLine("Invalid FailoverEvent : " + eventArgs.FailoverEvent);
        break;
      }
    }
    return FailoverReturnCode.Success;
  }
}