プライマリ・コンテンツに移動

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

関連項目:

- Oracle.DataAccess.ClientおよびOracle.ManagedDataAccess.Clientのネームスペース

- OracleFailoverEventArgsメンバー

- OracleFailoverEventArgs静的メソッド

- OracleFailoverEventArgsプロパティ

- OracleFailoverEventArgsパブリック・メソッド

- OracleConnectionクラス

- Oracle Database Net Services管理者ガイド