Pivotal Knowledge Base


JTA Transaction Support

Applies To

GemFire 7.0.x or later


This article provides answers to frequently asked questions regarding achieving 100% consistency with JTA transactions.


  1. Is it possible to achieve 100% consistency between cache and database, if both Gemfire and the database participate in JTA transaction as regular transactional resources (supported two-phase commit).

    Answer: It is not possible to achieve 100% consistency. For a non-"last-resource" JTA transaction, GemFire registers as a synchronization, so it does have a say in the outcome of the transaction. However, if the GemFire server were to die within the small window between the beforeCommit() and afterCommit() calls, GemFire would be inconsistent with other resources in the transaction. When GemFire is used as a last resource, we get the final say in the outcome of the transaction, so this window is effectively closed.

  2. Is "last resource" optimization a guarantee 100% consistency?

    Answer: That depends on the external transaction manager. Please refer to the Weblogic documentation here: http://docs.oracle.com/cd/E13222_01/wls/docs92/jta/llr.html

  3. What are the JTA transaction managers supported and tested with "last resource"  optimization?

    Answer:  Weblogic.

  4. What are the external transaction managers which are supported and tested with Gemfire?

    Answer: GemFire looks up transaction managers that bind to jndi with the following names:

    1. "java:/TransactionManager" "java:comp/TransactionManager"
    2. "java:appserver/TransactionManager" "java:pm/TransactionManager"
    3. "java:comp/UserTransaction"


Powered by Zendesk