| File: System\Transactions\PreparingEnlistment.cs | Web Access |
| Project: src\runtime\src\libraries\System.Transactions.Local\src\System.Transactions.Local.csproj (System.Transactions.Local) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace System.Transactions { public class PreparingEnlistment : Enlistment { internal PreparingEnlistment( InternalEnlistment enlistment ) : base(enlistment) { } public void Prepared() { TransactionsEtwProvider etwLog = TransactionsEtwProvider.Log; if (etwLog.IsEnabled()) { etwLog.MethodEnter(TraceSourceType.TraceSourceLtm, this); etwLog.EnlistmentPrepared(_internalEnlistment); } lock (_internalEnlistment.SyncRoot) { _internalEnlistment.State.Prepared(_internalEnlistment); } if (etwLog.IsEnabled()) { etwLog.MethodExit(TraceSourceType.TraceSourceLtm, this); } } public void ForceRollback() { TransactionsEtwProvider etwLog = TransactionsEtwProvider.Log; if (etwLog.IsEnabled()) { etwLog.MethodEnter(TraceSourceType.TraceSourceLtm, this); etwLog.EnlistmentForceRollback(_internalEnlistment); } lock (_internalEnlistment.SyncRoot) { _internalEnlistment.State.ForceRollback(_internalEnlistment, null); } if (etwLog.IsEnabled()) { etwLog.MethodExit(TraceSourceType.TraceSourceLtm, this); } } public void ForceRollback(Exception? e) { TransactionsEtwProvider etwLog = TransactionsEtwProvider.Log; if (etwLog.IsEnabled()) { etwLog.MethodEnter(TraceSourceType.TraceSourceLtm, this); etwLog.EnlistmentForceRollback(_internalEnlistment); } lock (_internalEnlistment.SyncRoot) { _internalEnlistment.State.ForceRollback(_internalEnlistment, e); } if (etwLog.IsEnabled()) { etwLog.MethodExit(TraceSourceType.TraceSourceLtm, this); } } public byte[] RecoveryInformation() { TransactionsEtwProvider etwLog = TransactionsEtwProvider.Log; if (etwLog.IsEnabled()) { etwLog.MethodEnter(TraceSourceType.TraceSourceLtm, this); } try { lock (_internalEnlistment.SyncRoot) { return _internalEnlistment.State.RecoveryInformation(_internalEnlistment); } } finally { if (etwLog.IsEnabled()) { etwLog.MethodExit(TraceSourceType.TraceSourceLtm, this); } } } } }