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 >