Dezember 2007 - Einträge

HA Events vs. TAF with RAC and ODP.NET
05 Dezember 07 07:31 | Urs Meier - Blog on IT
Lately I had a question in this Blog about an ORA-25408.
My first thought was, that TAF and HA events should not be mixed. In order to confirm this, I wrote a small application with 3 connection possibilites
1. Normal connection
2. TAF connection with or without HA events
3. Connection with HA events only




For the tests I used a 10.2.0.2 Oracle 3 node cluster and ODP.NET 11.1.0.6.10 BETA.

Once all 3 connections (pool with 5 connections each) were connected, I shutdown the current instance.

Results:
Normal connection.
If the tnsnames alias specifed FAILOVER=ON, the connection failed over, even without TAF specifications in the tnsnames.ora or on the used service. Big surprise! But a pleasant one....
With FAILOVER=OFF, I got the expected ORA-3113 error.





TAF connection:
The TAF is always fired. Regardless HA events=true or false!
So, I see no point of having TAF *and* HA events together.
Use TAF for query only applications. If you only do queries, than TAF provides a superior failover.
Use HA events for application server connection pools.
I think, this also confirms, that ODP.NET does not clear the connections with HA events if the connections has a registered TAF handler. Otherwise it would not be necessary to fire the TAF event handler any longer.

HA events connection:
ODP.NET cleans all bad connections in the pool. Reusing a pooled connection does not produce an error. Works as expected.

Abgelegt unter: , , ,