Re: Oracle11g - TAF, FAN,FCF ?

From: Stefan Koehler <contact_at_soocs.de>
Date: Thu, 15 Jan 2015 18:31:18 +0100 (CET)
Message-ID: <2003107780.111520.1421343078157.open-xchange_at_app02.ox.hosteurope.de>



Hi Karth,

>> 1) Can able to use TAF with TYPE = SESSION for DML operations failover. No, you can't. DML operations and session states are not covered by TAF. TAF and session fail-over works without any additional setup. However you can intercept the fail-over and your application needs additional code / logic to restart the transaction (e.g. by using CallbackFn function), if you want to go a little bit further and do a SELECT fail-over (no automatic DML replay!).

>> I do understand, FAN publish events that need to be captured by Application Server to detect any hangs. Some clients already got FAN/FCF support (e.g. like JDBC, Oracle Universal Connection Pool UCP, Oracle Data Providers for .Net). Such clients automatically react to FAN events and do the corresponding actions. However your DML issue will also not be covered/fixed by FAN/FCF.

I highly recommend Martin Bach's and Steve Shaw's book called "Pro Oracle Database 11g RAC on Linux" ( http://www.apress.com/9781430229582 ) for more detailed information and implementation examples about that topic (and 11g R2 RAC). This book is absolutely worth the money.

The functionality you are looking for is called "Application Continuity" and it is available with Oracle 12c (but unfortunately not for ODP for .Net right now):

- http://www.oracle.com/technetwork/database/database-cloud/private/application-continuity-wp-12c-1966213.pdf
- https://martincarstenbach.wordpress.com/2013/12/13/playing-with-application-continuity-in-rac-12c/
- http://docs.oracle.com/database/121/ADFNS/adfns_app_continuity.htm#ADFNS1105


Best Regards
Stefan Koehler

Freelance Oracle performance consultant and researcher Homepage: http://www.soocs.de
Twitter: _at_OracleSK

> Karth Panchan <keyantech_at_gmail.com> hat am 15. Januar 2015 um 16:40 geschrieben:
> > > 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.

--
http://www.freelists.org/webpage/oracle-l
Received on Thu Jan 15 2015 - 18:31:18 CET

Original text of this message