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

◆ EnlistPromotableSinglePhase()

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

Reimplemented from System.Transactions.TransactionState.

Definition at line 87 of file TransactionStatePhase0.cs.

88 {
89 if (tx._durableEnlistment != null)
90 {
91 return false;
92 }
93 TransactionState.TransactionStatePSPEOperation.Phase0PSPEInitialize(tx, promotableSinglePhaseNotification, promoterType);
94 Enlistment enlistment = new Enlistment(tx, promotableSinglePhaseNotification, atomicTransaction);
95 tx._durableEnlistment = enlistment.InternalEnlistment;
96 TransactionsEtwProvider log = TransactionsEtwProvider.Log;
97 if (log.IsEnabled())
98 {
99 log.TransactionstateEnlist(tx._durableEnlistment.EnlistmentTraceId, EnlistmentType.PromotableSinglePhase, EnlistmentOptions.None);
100 }
101 tx._promoter = promotableSinglePhaseNotification;
102 if (tx._promoterType == TransactionInterop.PromoterTypeDtc)
103 {
104 tx._promoteState = TransactionState.TransactionStateDelegated;
105 }
106 else
107 {
108 tx._promoteState = TransactionState.TransactionStateDelegatedNonMSDTC;
109 }
110 DurableEnlistmentState.DurableEnlistmentActive.EnterState(tx._durableEnlistment);
111 return true;
112 }

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.