|
Oracle® Data Provider for .NET Developer's Guide
10g Release 1 (10.1.0.3) Part No. B14164-01 |
|
|
|
|
The OracleFailoverEventHandler represents the signature of the method that handles the OracleConnection.Failover event.
Declaration
// C#
public delegate FailoverReturnCode OracleFailoverEventHandler(object sender,
OracleFailoverEventArgs eventArgs);
Parameter
sender
The source of the event.
eventArgs
The OracleFailoverEventArgs object that contains the event data.
Return Type
An int.
Remarks
To receive failover notifications, a callback function can be registered as follows:
ConObj.Failover += new OracleFailoverEventHandler(OnFailover);
The definition of the callback function OnFailover can be as follows:
public FailoverReturnCode OnFailover(object sender, OracleFailoverEventArgs eventArgs)
Example
// 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 OracleFailoverEventHandlerSample
{
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);
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;
}
}