| Oracle® Data Provider for .NET開発者ガイド ODAC 12c リリース4 (12.1.0.2) for Microsoft Windows E72575-01 | 
 | 
|  前 |  次 | 
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.0, 4.5, 4.6 | 
.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;
  }
}
OracleFailoverEventArgsメンバーは次の表にリストされています。
OracleFailoverEventArgs静的メソッド
OracleFailoverEventArgs静的メソッドを、表11-1にリストします。
OracleFailoverEventArgsプロパティ
OracleFailoverEventArgsプロパティを、表11-2にリストします。
OracleFailoverEventArgsパブリック・メソッド
OracleFailoverEventArgsパブリック・メソッドを、表11-3にリストします。
OracleFailoverEventArgsプロパティを、表11-5にリストします。
このプロパティはフェイルオーバーの状態を示します。
宣言
// C#
public FailoverType FailoverType {get;} 
プロパティ値
FailoverTypeの列挙値
OracleFailoverEventArgsパブリック・メソッドを、表11-6にリストします。