TAF on Delphi DOA

Hi all,

For a small TAF test (transparent application failover) I discovered that my small Delphi app crashed with an ORA exception, while my SQLplus session failed over (so I gues no problem in config).
Has anyone experience with TAF using DOA?

Kind Regards,
Robert.
 
Hi Marco,
Hereby the oracle exception

$ ./dbtest
Logging on to database
Inserting value in test table
Exception EOracleError in module dbtest.exe at 000AA24F.
ORA-25402: Transactie moet worden teruggezet.

It looks like the failover does generate an exception, but isn't that what TAF was designed _not_ to do?

I looked at metalink and found out that there is a feature (bug 3111497) related. I'll patch up to 9.2.0.5 to see if it solved.

Robert.
 
Hi Marco/all,

Seems that patching up to 9.2.0.5 didn't solve the error. I still get the error:

Exception EOracleError in module dbtest.exe at 000AA24F.
ORA-25402: Transactie moet worden teruggezet.

Robert.
 
ORA-25402 would imply that a transaction was started before the server failed. As a result, you would need to perform a rollback and redo the complete transaction.

Could this be the case?
 
Yes, that's the case. The transaction is actually a while loop with inserts for a test.

I was under the impression that a failover would actually be transparent and all transactions would failover. However, not all actions do fail over (from oracle):

* All PL/SQL package states on the server are lost at failover
* ALTER SESSION statements are lost
* If failover occurs when a transaction is in progress, then each subsequent call causes an error message until the user issues an OCITransRollback call. Then Oracle issues an Oracle Call Interface (OCI) success message. Be sure to check this message to see if you must perform additional operations.
* Oracle fails over the database connection and if TYPE=SELECT in the FAILOVER_MODE section of the service name description, Oracle also attempts to fail over the query
* Continuing work on failed-over cursors can result in an error message

Seems I had the wrong idea about TAF.
Sorry to have bothered you,
Robert.
 
Is it maybe an idea to have an option to retry a transaction (number of retries/wait until redo)? Otherwise I have to try/finally every statement to make my app rac-enabled...
Maybe in a next version?
 
Back
Top