OracleFailoverEventArgsクラス
OracleFailoverEventArgsクラスは、OracleConnection.Failoverイベントのイベント・データを提供します。データベースのフェイルオーバーが発生すると、OracleConnection.Failoverイベントが、イベント・データが格納されているOracleFailoverEventArgsオブジェクトとともにトリガーされます。
クラスの継承
System.Object
System.EventArgs
Oracle.DataAccess.Client.OracleFailoverEventArgs
宣言
// C# public sealed class OracleFailoverEventArgs
要件
| プロバイダ | ODP.NET管理対象外ドライバ |
|---|---|
|
アセンブリ |
|
|
ネームスペース |
|
|
.NET Framework |
3.5, 4.5, 4.6, 4.7, 4.8 |
.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;
}
}