Re: Oracle11g - TAF, FAN,FCF ?
From: Andrew Kerber <andrew.kerber_at_gmail.com>
Date: Thu, 15 Jan 2015 09:47:33 -0600
Message-Id: <D17C2791-30B9-42E5-8E38-576644791BD2_at_gmail.com>
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.
>> 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
>
Date: Thu, 15 Jan 2015 09:47:33 -0600
Message-Id: <D17C2791-30B9-42E5-8E38-576644791BD2_at_gmail.com>
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_at_gmail.com> 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
>
-- http://www.freelists.org/webpage/oracle-lReceived on Thu Jan 15 2015 - 16:47:33 CET