public static void TriggerBeforeCommit(bool readOnly) { foreach (var synchronization in TransactionSynchronizationManager.GetSynchronizations()) { synchronization.BeforeCommit(readOnly); } }
public static void InvokeAfterCommit(List <ITransactionSynchronization> synchronizations) { if (synchronizations != null) { foreach (var synchronization in TransactionSynchronizationManager.GetSynchronizations()) { synchronization.AfterCommit(); } } }
private List <ITransactionSynchronization> DoSuspendSynchronization() { var suspendedSynchronizations = TransactionSynchronizationManager.GetSynchronizations(); foreach (var synchronization in suspendedSynchronizations) { synchronization.Suspend(); } TransactionSynchronizationManager.ClearSynchronization(); return(suspendedSynchronizations); }
public static void TriggerBeforeCompletion(ILogger logger = null) { foreach (var synchronization in TransactionSynchronizationManager.GetSynchronizations()) { try { synchronization.BeforeCompletion(); } catch (Exception ex) { logger?.LogError(ex, "TransactionSynchronization.beforeCompletion threw exception"); } } }
public static void InvokeAfterCompletion(List <ITransactionSynchronization> synchronizations, int completionStatus, ILogger logger = null) { if (synchronizations != null) { foreach (var synchronization in TransactionSynchronizationManager.GetSynchronizations()) { try { synchronization.AfterCompletion(completionStatus); } catch (Exception ex) { logger.LogError("TransactionSynchronization.afterCompletion threw exception", ex); } } } }
private void TriggerAfterCompletion(DefaultTransactionStatus status, int completionStatus) { if (status.IsNewSynchronization) { var synchronizations = TransactionSynchronizationManager.GetSynchronizations(); TransactionSynchronizationManager.ClearSynchronization(); if (!status.HasTransaction || status.IsNewTransaction) { _logger?.LogTrace("Triggering afterCompletion synchronization"); // No transaction or new transaction for the current scope -> // invoke the afterCompletion callbacks immediately InvokeAfterCompletion(synchronizations, completionStatus); } else if (synchronizations.Count > 0) { // Existing transaction that we participate in, controlled outside // of the scope of this Spring transaction manager -> try to register // an afterCompletion callback with the existing (JTA) transaction. RegisterAfterCompletionWithExistingTransaction(status.Transaction, synchronizations); } } }
public static void TriggerAfterCompletion(int completionStatus) { var synchronizations = TransactionSynchronizationManager.GetSynchronizations(); InvokeAfterCompletion(synchronizations, completionStatus); }
public static void TriggerAfterCommit() { InvokeAfterCommit(TransactionSynchronizationManager.GetSynchronizations()); }