Class CacheTransactionSync
- java.lang.Object
-
- com.ibm.fhir.persistence.jdbc.impl.CacheTransactionSync
-
- All Implemented Interfaces:
javax.transaction.Synchronization
public class CacheTransactionSync extends java.lang.Object implements javax.transaction.SynchronizationAdapter to synchronize the thread-local caches with the shared caches when the transaction commits. It's important that we don't share ids created inside a transaction with other threads until the data is committed - those ids are not visible to other threads/transactions (the 'I' in ACID).
-
-
Constructor Summary
Constructors Constructor Description CacheTransactionSync(javax.transaction.TransactionSynchronizationRegistry txSyncRegistry, FHIRPersistenceJDBCCache cache, java.lang.String transactionDataKey, java.util.function.Consumer<java.lang.Boolean> afterTransactionHandler)Public constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterCompletion(int status)voidbeforeCompletion()static java.lang.StringtranslateStatus(int status)Translate the transaction Status value to a meaningful name
-
-
-
Constructor Detail
-
CacheTransactionSync
public CacheTransactionSync(javax.transaction.TransactionSynchronizationRegistry txSyncRegistry, FHIRPersistenceJDBCCache cache, java.lang.String transactionDataKey, java.util.function.Consumer<java.lang.Boolean> afterTransactionHandler)Public constructor- Parameters:
txSyncRegistry-cache-transactionDataKey-afterTransactionHandler- a handler called after the transaction completes (true == committed; false == rolled back)
-
-
Method Detail
-
beforeCompletion
public void beforeCompletion()
- Specified by:
beforeCompletionin interfacejavax.transaction.Synchronization
-
afterCompletion
public void afterCompletion(int status)
- Specified by:
afterCompletionin interfacejavax.transaction.Synchronization
-
translateStatus
public static java.lang.String translateStatus(int status)
Translate the transaction Status value to a meaningful name- Parameters:
status- a value fromStatus- Returns:
- a string describing the transaction status
-
-