JBoss.org Community Documentation
Used when your cache mode is REPL_SYNC. Upon committing your transaction, JBoss Cache broadcasts a prepare call, which carries all modifications relevant to the transaction. Remote caches then acquire local locks on their in-memory state and apply the modifications. Once all remote caches respond to the prepare call, the originator of the transaction broadcasts a commit. This instructs all remote caches to commit their data. If any of the caches fail to respond to the prepare phase, the originator broadcasts a rollback.
Note that although the prepare phase is synchronous, the
commit and rollback phases are asynchronous. This is because
Sun's JTA
specification
does not specify how transactional resources
should deal with failures at this stage of a transaction; and other
resources participating in the transaction may have indeterminate
state anyway. As such, we do away with the overhead of synchronous
communication for this phase of the transaction. That said, they can
be forced to be synchronous using the
SyncCommitPhase
and
SyncRollbackPhase
configuration
attributes.