By Monica Riccelli-Oracle on Jul 17, 2014
One of the most exciting new features in WebLogic
Server 12.1.3 is a JTA new feature
“XA Transaction without Transaction Logs.” This feature does not only provide performance optimization when applications use XA transactions, but also has great advantages for Disaster Recovery scenarios.
XA transactions provide a standards-based mechanism to preserve data integrity for mission-critical applications. Traditionally XA transaction recovery requires the transaction manager to persist transaction records to stable storage (TLog) after all of the transactions resources have been prepared, and purging them after all of the transactions resources have been completed. However, recording pending transactions for recovery purposes requires additional I/O which affects performance. In cases of disaster recovery transaction logs need to be replicated to make sure that global transactions can be recovered.
“XA Transaction without Transaction Logs,” uses a determiner resource which can be either a DataSource or a WebLogic JMS resource to determine the recover outcome of pending transactions. When using a determiner resource, WebLogic Server will no longer write and purge transaction checkpoints to TLogs. “XA Transaction without Transaction Logs,” takes advantage of the two-phase-commit protocol, as well as prepare and commit ordering of resources participating in the global transaction to determine if pending transactions need to be recovered with a commit or a rollback.
The advantages of this feature are:
· Up to three times performance throughput improvement
· Prepare and Commit ordering
· I/O latency removed by not writing to TLOG (default file store)
· Resource and/or batch blocking removed (JDBC Tlog)
· Memory consumption reduced
· Capacity requirements reduced
· TLOG replication made easy
In WebLogic Server 12.1.3 “XA Transaction without Transaction Logs,” is restricted to transactions that involve a single Transaction Manager (WebLogic Server). The mixture of transactions that enlist determiner resources and span single Transaction Managers, with those who do not enlist a determiner resource and/or span multiple Transaction Managers is supported. In the future, WebLogic will support not logging transactions that involve multiple Transaction Managers.
Check out the YouTube recordings that go into detail how this feature works "JTA 12.1.3 New Feature and Optimization". There is even a demo that shows you how it is configured, how it works, and how you can debug your transactions to verify if the determiner is working "XA Transaction without Transaction Logs" and Demo.