本文整理汇总了C#中System.Transactions.SinglePhaseEnlistment.InDoubt方法的典型用法代码示例。如果您正苦于以下问题:C# SinglePhaseEnlistment.InDoubt方法的具体用法?C# SinglePhaseEnlistment.InDoubt怎么用?C# SinglePhaseEnlistment.InDoubt使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Transactions.SinglePhaseEnlistment
的用法示例。
在下文中一共展示了SinglePhaseEnlistment.InDoubt方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Rollback
/// <summary>
/// Rollbacks the specified single phase enlistment.
/// </summary>
/// <param name="singlePhaseEnlistment">The single phase enlistment.</param>
public void Rollback(SinglePhaseEnlistment singlePhaseEnlistment)
{
onTxComplete();
try
{
session.Rollback(PromotableRavenClientEnlistment.GetLocalOrDistributedTransactionId(transaction));
using (var machineStoreForApplication = IsolatedStorageFile.GetMachineStoreForDomain())
{
machineStoreForApplication.DeleteFile(TransactionRecoveryInformationFileName);
}
}
catch (Exception e)
{
logger.ErrorException("Could not rollback distributed transaction", e);
singlePhaseEnlistment.InDoubt(e);
return;
}
singlePhaseEnlistment.Aborted();
}
示例2: Rollback
/// <summary>
/// Rollbacks the specified single phase enlistment.
/// </summary>
/// <param name="singlePhaseEnlistment">The single phase enlistment.</param>
public void Rollback(SinglePhaseEnlistment singlePhaseEnlistment)
{
onTxComplete();
try
{
session.Rollback(transaction.LocalIdentifier);
DeleteFile();
}
catch (Exception e)
{
logger.ErrorException("Could not rollback distributed transaction", e);
singlePhaseEnlistment.InDoubt(e);
return;
}
singlePhaseEnlistment.Aborted();
ctx.Dispose();
}
示例3: Rollback
/// <summary>
/// Rollbacks the specified single phase enlistment.
/// </summary>
/// <param name="singlePhaseEnlistment">The single phase enlistment.</param>
public void Rollback(SinglePhaseEnlistment singlePhaseEnlistment)
{
onTxComplete();
try
{
session.Rollback(PromotableRavenClientEnlistment.GetLocalOrDistributedTransactionId(transaction));
DeleteFile();
}
catch (Exception e)
{
logger.ErrorException("Could not rollback distributed transaction", e);
singlePhaseEnlistment.InDoubt(e);
return;
}
singlePhaseEnlistment.Aborted();
}
示例4: SinglePhaseCommit
public void SinglePhaseCommit(SinglePhaseEnlistment enlistment)
{
SqlInternalConnection validConnection = this.GetValidConnection();
SqlConnection connection = validConnection.Connection;
Bid.Trace("<sc.SqlDelegatedTransaction.SinglePhaseCommit|RES|CPOOL> %d#, Connection %d#, committing transaction.\n", this.ObjectID, validConnection.ObjectID);
RuntimeHelpers.PrepareConstrainedRegions();
try
{
if (validConnection.IsConnectionDoomed)
{
lock (validConnection)
{
this._active = false;
this._connection = null;
}
enlistment.Aborted(SQL.ConnectionDoomed());
}
else
{
Exception exception;
lock (validConnection)
{
try
{
this.ValidateActiveOnConnection(validConnection);
this._active = false;
this._connection = null;
validConnection.ExecuteTransaction(SqlInternalConnection.TransactionRequest.Commit, null, System.Data.IsolationLevel.Unspecified, this._internalTransaction, true);
exception = null;
}
catch (SqlException exception3)
{
exception = exception3;
ADP.TraceExceptionWithoutRethrow(exception3);
validConnection.DoomThisConnection();
}
catch (InvalidOperationException exception2)
{
exception = exception2;
ADP.TraceExceptionWithoutRethrow(exception2);
validConnection.DoomThisConnection();
}
}
if (exception != null)
{
if (this._internalTransaction.IsCommitted)
{
enlistment.Committed();
}
else if (this._internalTransaction.IsAborted)
{
enlistment.Aborted(exception);
}
else
{
enlistment.InDoubt(exception);
}
}
validConnection.CleanupConnectionOnTransactionCompletion(this._atomicTransaction);
if (exception == null)
{
enlistment.Committed();
}
}
}
catch (OutOfMemoryException exception6)
{
connection.Abort(exception6);
throw;
}
catch (StackOverflowException exception5)
{
connection.Abort(exception5);
throw;
}
catch (ThreadAbortException exception4)
{
connection.Abort(exception4);
throw;
}
}