Re: Oracle11g - TAF, FAN,FCF ?

  • From: Andrew Kerber <andrew.kerber@xxxxxxxxx>
  • To: "keyantech@xxxxxxxxx" <keyantech@xxxxxxxxx>
  • Date: Thu, 15 Jan 2015 09:47:33 -0600

You must work with the application to do this.  It cannot be handled solely by 
the database.  A lot of logic has to be added to application code to handle 
these events.

Sent from my iPad

> On Jan 15, 2015, at 9:40 AM, Karth Panchan <keyantech@xxxxxxxxx> wrote:
> 
> 
>> List
>>  
>> I have been tasked to implement application failover without impact to end 
>> user.
>> This area is new to me.
>> Implemented TAF(Transparent Application Failover) in Sandbox and found some 
>> limitations due to our application.
>>  
>> Oracle 11.2.0.2 with 2 Instance RAC on Linux – Database
>> .Net Framework Client Facing Web Application with high OLTP – Uses 
>> Connection Pool and Distributed Transactions
>>  
>> Expected Results:
>>   Client session connected to INST1 doing DML operations and INST1 goes down.
>>   Session DML operations need to be smoothly move to INST2 and continue.
>>   Our App team expects no error to Clients and all their DML operations need 
>> to be successful.
>>  
>> My Test:
>> 1)      Modified SQL Client Tnsentry as below
>> 2)      Our application was connecting all sessions to INST1. 
>> 3)      Killed Oracle INST1 process at OS level.
>> 4)      Our application connections failover to INST2
>>  
>> We faced 2 ORA errors on our log
>> ORA-12535: TNS: Operation Time out
>> ORA-25408: Can not safely replay call.
>>  
>> Findings:
>> With below TAF settings, it only support SELECT statements.
>>   ORA-25408 was generated by DML statements.
>>  
>> Further reading documentation and white paper, I found TAF will not support 
>> Distributed Transactions.
>>  
>> Questions:
>> 1)      Can able to use TAF with TYPE = SESSION for DML operations failover.
>> 2)      If yes, what is impact to DML and SELECT statements to failed over 
>> session?
>> 3)      Is there any option for smooth failover using Distributed 
>> Transactions?
>> 4)      We have 3 options
>> a)      TAF – this is mostly for READ-ONLY DB instance. TCP Timeout 
>> bottleneck.
>> b)      TAF with FAN – Eliminate TCP timeout bottleneck and ideal for 
>> OLTP(based on my reading from google)
>> c)      TAF,FAN and FCF
>>  
>> I do understand, FAN publish events that need to be captured by Application 
>> Server to detect any hangs.
>>  
>> Can someone please suggest which option will be best based on your 
>> experience?
>>  
>> Thanks in advance for your valuable time and advice.
>>  
>> My Test TnsEntry:
>> ==============
>> myservice = 
>>   (DESCRIPTION =
>>     (ADDRESS_LIST =
>>       (LOAD_BALANCE = ON)
>>         (FAILOVER = ON)
>>           (ADDRESS = (PROTOCOL = TCP)(HOST = scanname_goes_here)(PORT = 
>> 1521))
>>         )
>>   (CONNECT_DATA =
>>     (service_name = xxxxxxxxx)
>>    (FAILOVER_MODE =
>>    (TYPE = SELECT)
>>    (METHOD = BASIC)
>>    (RETRIES = 20)
>>    (DELAY = 3)
>>    )
>>   )
>> )
>>  
>>  
>> Thanks
> 

Other related posts: