📄 complustransaction.cs
字号:
#region Copyright & License
//
// $Copyright:$
//
#endregion
#region Document Information
// $Author: Bai.shijun $
// $Rev: $
// $Date: 05-10-08 16:13 $
#endregion
using System;
using System.EnterpriseServices;
using System.Diagnostics;
namespace Eai.Data.Transaction
{
/// <summary>
/// 使用COM+分布式事务管理器。
/// </summary>
public class COMPlusTransaction : MixTransactionBase, IDisposable
{
TransactionAttribute transAttr;
Guid transId = Guid.Empty;
public COMPlusTransaction(TransactionAttribute transAttr)
{
this.transAttr = transAttr;
}
#region IMixTransation Members
public override void Begin()
{
ServiceConfig config = new ServiceConfig();
config.Transaction = transAttr.Value;
config.TransactionTimeout = transAttr.Timeout;
config.IsolationLevel = transAttr.Isolation;
ServiceDomain.Enter(config);
transId = ContextUtil.TransactionId;
}
public override void Rollback()
{
ContextUtil.SetAbort();
ServiceDomain.Leave();
DataAccessors.Close();
}
public override void Commit()
{
DataAccessors.Flush();
ContextUtil.SetComplete();
ServiceDomain.Leave();
DataAccessors.Close();
}
public override bool SupportParallelTransactin
{
get { return true; }
}
public override void AttachDataAccessor(string name, IDataAccessor dataAccessor)
{
DataAccessors.Add(name, dataAccessor);
}
#endregion
#region IDisposable Members
public void Dispose()
{
if (TransactionStarted) Rollback();
}
#endregion
private bool TransactionStarted
{
get { return transId != Guid.Empty; }
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -