Re: Oracle11g - TAF, FAN,FCF ?

  • From: Stefan Koehler <contact@xxxxxxxx>
  • To: "keyantech@xxxxxxxxx" <keyantech@xxxxxxxxx>
  • Date: Thu, 15 Jan 2015 18:31:18 +0100 (CET)

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: @OracleSK

> Karth Panchan <keyantech@xxxxxxxxx> 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.
--
//www.freelists.org/webpage/oracle-l


Other related posts: