How It Works

Atomikos ExtremeTransactions allows automatic cancelation of the effects of incomplete transactions by tracking (via our connectors) what systems or services your transaction accesses. On timeout, cancel or crash of an incomplete transaction we always know what to cancel, in what system.

Our software offers connectors to back-end systems (via JDBC or JMS) and peer processes (web services, RMI services). The following examples show how this works.

The happy case

  1. Your application indicates the start of a transaction. You can do this via our API, the standard Java JTA/XA API or the Spring configuration mechanism.
  2. Your application accesses the database via our JDBC connector. This connector wraps the native DBMS drivers and adds transactional tracking: it notifies our core that the SQL in question is part of the transaction. The DBMS is now called a participant in the transaction.
  3. This same is true for any JMS, SOAP or RMI calls you make within the transaction.
  4. At the end of the transaction, our core knows all participants involved, especially those participants that manage persistent data (databases, message queues, peer processes). The system logs all this information in a log file.
  5. Your application indicates that the transaction should commit. Since our core knows all systems involved, it can co-ordinate this to make sure everyone agrees.

The crash case

If there is a crash before step 5 then our software will detect the incomplete transaction upon restart, and rollback each participant.

If there is a crash during step 5 then the logic is a bit more complex but still managed by our software: if the co-ordination already resulted in a commit agreement by all participants then the transaction will commit entirely. Otherwise, the transaction will rollback entirely.

Your application doesn't need to do anything, this happens automatically.

The error case

If there is an application-level error at any time, the application can request rollback explicitly in step 5. All the rest is taken care of by our software.

The timeout case

If for any other reason your application abandons before step 5 then the transaction will time out and our software will rollback automatically.

Go
r3 - 01 Mar 2008 - 19:36:57 - WoutSteurs
This site is powered by the TWiki collaboration platformCopyright © contributing authors and Atomikos. All material on this collaboration platform is the shared property of the contributing authors and Atomikos.
Syndicate this site RSSATOM