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

◆ EnlistPromotableSinglePhase()

override bool System.Transactions.TransactionStateActive.EnlistPromotableSinglePhase ( InternalTransaction tx,
IPromotableSinglePhaseNotification promotableSinglePhaseNotification,
Transaction atomicTransaction,
Guid promoterType )
inlinepackagevirtual

Reimplemented from System.Transactions.TransactionState.

Reimplemented in System.Transactions.TransactionStateSubordinateActive.

Definition at line 65 of file TransactionStateActive.cs.

66 {
67 if (tx._durableEnlistment != null)
68 {
69 return false;
70 }
71 TransactionState.TransactionStatePSPEOperation.PSPEInitialize(tx, promotableSinglePhaseNotification, promoterType);
72 Enlistment enlistment = new Enlistment(tx, promotableSinglePhaseNotification, atomicTransaction);
73 tx._durableEnlistment = enlistment.InternalEnlistment;
74 TransactionsEtwProvider log = TransactionsEtwProvider.Log;
75 if (log.IsEnabled())
76 {
77 log.TransactionstateEnlist(tx._durableEnlistment.EnlistmentTraceId, EnlistmentType.PromotableSinglePhase, EnlistmentOptions.None);
78 }
79 tx._promoter = promotableSinglePhaseNotification;
80 if (tx._promoterType == TransactionInterop.PromoterTypeDtc)
81 {
82 tx._promoteState = TransactionState.TransactionStateDelegated;
83 }
84 else
85 {
86 tx._promoteState = TransactionState.TransactionStateDelegatedNonMSDTC;
87 }
88 DurableEnlistmentState.DurableEnlistmentActive.EnterState(tx._durableEnlistment);
89 return true;
90 }

References System.Transactions.InternalTransaction._durableEnlistment, System.Transactions.InternalTransaction._promoterType, System.Transactions.DurableEnlistmentState.DurableEnlistmentActive, System.Transactions.InternalEnlistment.EnlistmentTraceId, System.Transactions.Enlistment.InternalEnlistment, System.Diagnostics.Tracing.EventSource.IsEnabled(), System.Transactions.TransactionsEtwProvider.Log, System.Transactions.TransactionInterop.PromoterTypeDtc, System.Transactions.TransactionState.TransactionStateDelegated, System.Transactions.TransactionState.TransactionStateDelegatedNonMSDTC, System.Transactions.TransactionsEtwProvider.TransactionstateEnlist(), and System.Transactions.TransactionState.TransactionStatePSPEOperation.