本文整理汇总了C#中IModel.TxRollback方法的典型用法代码示例。如果您正苦于以下问题:C# IModel.TxRollback方法的具体用法?C# IModel.TxRollback怎么用?C# IModel.TxRollback使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IModel
的用法示例。
在下文中一共展示了IModel.TxRollback方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EnsureThreadBoundModelIsInitialized
void EnsureThreadBoundModelIsInitialized(ITransactionContext context)
{
if (threadBoundModel != null && threadBoundModel.IsOpen)
{
if (context[CurrentModelKey] == null)
{
context[CurrentModelKey] = threadBoundModel;
context.DoCommit += () => threadBoundModel.TxCommit();
context.DoRollback += () => threadBoundModel.TxRollback();
}
return;
}
threadBoundModel = GetConnection().CreateModel();
threadBoundModel.TxSelect();
context.DoCommit += () => threadBoundModel.TxCommit();
context.DoRollback += () => threadBoundModel.TxRollback();
// ensure any sends withing this transaction will use the thread bound model
context[CurrentModelKey] = threadBoundModel;
}
示例2: RollbackIfNecessary
/// <summary>
/// Rollback the transaction if necessary.
/// </summary>
/// <param name="channel">
/// The channel.
/// </param>
/// <exception cref="AmqpException">
/// </exception>
/// <exception cref="AmqpIOException">
/// </exception>
public static void RollbackIfNecessary(IModel channel)
{
AssertUtils.ArgumentNotNull(channel, "Channel must not be null");
try
{
channel.TxRollback();
}
catch (OperationInterruptedException oiex)
{
throw new AmqpException("An error occurred rolling back the transaction.", oiex);
}
catch (IOException ex)
{
throw new AmqpIOException("An error occurred rolling back the transaction.", ex);
}
}
示例3: RollbackIfNecessary
public static void RollbackIfNecessary(IModel channel)
{
AssertUtils.ArgumentNotNull(channel, "Channel must not be null");
try
{
channel.TxRollback();
//TODO investiage if a more specific exception is thrown
} catch (Exception ex)
{
logger.Error("Could not rollback Rabbit Channel", ex);
}
}