Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ PromoteAndEnlistDurable()

override Enlistment System.Transactions.TransactionStatePSPEOperation.PromoteAndEnlistDurable ( InternalTransaction tx,
Guid resourceManagerIdentifier,
IPromotableSinglePhaseNotification promotableNotification,
ISinglePhaseNotification enlistmentNotification,
EnlistmentOptions enlistmentOptions,
Transaction atomicTransaction )
inlinepackagevirtual

Reimplemented from System.Transactions.TransactionState.

Definition at line 105 of file TransactionStatePSPEOperation.cs.

106 {
107 if (!tx._attemptingPSPEPromote)
108 {
109 throw TransactionException.CreateTransactionStateException(tx._innerException, tx.DistributedTxId);
110 }
111 if (promotableNotification != tx._promoter)
112 {
113 throw TransactionException.CreateInvalidOperationException(TraceSourceType.TraceSourceLtm, System.SR.InvalidIPromotableSinglePhaseNotificationSpecified, null, tx.DistributedTxId);
114 }
115 tx._durableEnlistment = null;
116 tx._promoteState = TransactionState.TransactionStatePromoted;
117 tx._promoteState.EnterState(tx);
118 Enlistment enlistment = tx.State.EnlistDurable(tx, resourceManagerIdentifier, enlistmentNotification, enlistmentOptions, atomicTransaction);
119 tx._durableEnlistment = enlistment.InternalEnlistment;
120 return enlistment;
121 }
static string InvalidIPromotableSinglePhaseNotificationSpecified
Definition SR.cs:36
Definition SR.cs:7

References System.Transactions.InternalTransaction._attemptingPSPEPromote, System.Transactions.InternalTransaction._innerException, System.Transactions.InternalTransaction._promoter, System.Transactions.InternalTransaction._promoteState, System.Transactions.TransactionException.CreateInvalidOperationException(), System.Transactions.TransactionException.CreateTransactionStateException(), System.Transactions.InternalTransaction.DistributedTxId, System.Transactions.TransactionState.EnlistDurable(), System.Transactions.TransactionState.EnterState(), System.Transactions.Enlistment.InternalEnlistment, System.SR.InvalidIPromotableSinglePhaseNotificationSpecified, System.Transactions.InternalTransaction.State, and System.Transactions.TransactionState.TransactionStatePromoted.