The two-phase commit protocol coordinates
all the partitions that participate in a distributed transaction on
whether to commit or roll back the transaction.
In a distributed data grid, partitions are distributed across multiple Java™ virtual machines (JVM). These JVMs can be on more than one system. A transaction that writes to multiple partitions might involve transactional decisions that affect more than one system. When the transaction is committed with a two-phase commit protocol, this commit process ensures that the entire transaction is persisted, or none of transaction is persisted. The two-phase commit process ensures this outcome despite partition, system, or communication failures. If a failure occurs in the second phase, the WebSphere® eXtreme Scale client attempts to resolve the failure automatically, unless the error meets certain criteria for which you can manually intervene.
A transaction that is enabled to write to multiple partitions uses the two-phase commit protocol. A two-phase commit protocol ensures that the commit process is consistent across all partitions and systems. WebSphere eXtreme Scale acts as the coordinator that controls the two-phase commit process. The partitions that are involved in the transaction are called the participants or resource managers (RM). During the second phase of the commit protocol, the coordinator delegates one of the partitions to act as the transaction manager (TM). The TM is responsible for tracking the decision of each transaction and recovering the transaction if a failure occurs.
00000099 TransactionLog I CWOBJ8705I: Automatic resolution of transaction WXS-40000139-DF01-216D-E002-1CB456931719 at RM:TestGrid:TestSet2:20 is still waiting for a decision. Another attempt to resolve the transaction will occur in 30 seconds.
Allow WebSphere eXtreme Scale client to resolve the transaction. Attempt to intervene manually only if the transaction is not recovered within 1 minute or the application is experiencing a high volume of lock contention because it is an indoubt transaction. For more information about how to manually recover a transaction, see Troubleshooting lock timeout exceptions for a multi-partition transaction.