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; } }