Atomikos Forum |
|
Hi,
I have got some questions about transaction recovery with Atomikos Transaction Essentials. 1) I read Transaction Essentaials guide which states that "startup and recovery of the transaction service will happen automatically as soon as you start using the UserTransaction". Does this mean that the framework will try to recover from failure last failure(s) on any new transaction? (or on framework "start" / application reboot) 2) Image we have 2 database(s) XA data sources which have to be atomic. We commit the user transaction which internally prepares and commits each resource. Lets look at Mysql: http://dev.mysql.com/doc/refman/5.0/en/xa-restrictions.html It says that prepared (in doubt) transactions will be rolled back when the connection is lost. Image a scenario when internally both prepares succeed but only one individual commit succeeds (connection lost in between edge case). Is there any support from Atomikos to recover from the situation like this? This can also happen in Oracle database. Documentation says that in-doubt transactions can be rolled back automatically when locks are required. Thanks for help.
As per XA, we try to recover prepared transactions from the database as long as the database supports XA.
If prepared transactions magically disappear from the database then this can be expected to cause 'heuristic' exceptions during recovery. That is the best we can do because by definition XA requires support from the database... HTH |