正在阅读:用Delphi模拟组件的两阶段提交用Delphi模拟组件的两阶段提交

2004-02-14 09:34 出处:CSDN 作者:eastliangliang 责任编辑:linjixiong
不论两层或三层体系,事物处理都是通过两阶段提交实现的。在第一阶段,每个执行的的资源\记录被写入 事物环境(Transcation Context)中,然后资源协调者顺序查询每一个参与事物的执行是否成功,如果都没有问题的话,就进入第二阶段,每个执行都开始Commit它的操作。如果有一个执行有问题的话,资源协调者通知所有下属的执行放弃Commit,恢复数据原状态。

参考COM+的事务运行,如果一个组件是需要事务的,那么在组件创建时,事务就已经开始了,在组件销毁时进行事务投票,如果是根事务,则进行提交或回滚事务。(如果组件支持池化,这两种情况发生在组件激活和休眠事件中)。于是我们定义一个类如下。

//业务类的祖先类,用于提供统一的事务支持

  TTS_DL = class

  private

    isRootTrans:Boolean;      //是否是根事务

    isNeedTrans:Boolean;      //是否需要事务

  public

    DBOperate:TDBOperate_DL;   //操作数据库的类的实例

    procedure SetComplete;

    procedure SetAbort;

    constructor Create(const newDBOperate:TDBOperate_DL;needTrans:Boolean);//是否需要事务支持

    destructor Destroy;override;

  end;

在该类创建时,除了传递进操作数据库的类的实例外,再传入一个是否需要事务的标志,因为如果是只做读取数据库的操作,就用不着事务了。

察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品