OSGI JTA Transaction Service
Git branch: track5
The OSGI JTA Transaction Service is a direct mapping of the JTA specification to OSGI Services.
This implementation is only meant for educational purpose. It lacks the capability to coordinate recovery of transactions that failed in the in doubt phase.
Recovery from failure during the in doubt phase is complicated by:
- After a restart the transaction service has no standard way of obtaining XAResources that were potentially involved in transaction failures.
- When using horizontal scaling (that is farm of OSGI containers running the same application), it is not easy to determine of the XIDs returned by an XAResource recover method belong to this transaction manager. There is a risk of performing a rollback of an active transaction managed by a peer transaction manager
- The need to force the commit decision to reliable storage between the prepare and commit step, requires that the application server has access to fast and reliable storage. This is an unusual requirement for an application server. Alternatively the transaction manager could use a separate database connection for storing transaction commit decisions, however at the cost of more complexity and performance overhead