在 COM+ 中管理自动事务
在 COM+ 编程模型中,你可以将组件设计为做它们最擅长的事情(启用业务逻辑或建立数据库连接),并依靠 Microsoft Windows 的事务处理框架来自动执行事务。
启动事务
当遇到以下任一情况时,COM+ 会自动启动事务:
- 当非事务客户端调用需要事务或需要新事务的组件时。
- 当事务性客户端调用需要新事务的组件时。
如果 COM+ 确定一个对象应该有一个新的事务,会首先开始事务,然后将该对象置于该事务中。 本流程包括以下步骤:
- COM+ 创建上下文对象,将 JIT 激活和同步属性设置为“必需”,并将一致和完成标志分别设置为 True 和 False。
- COM+ 与分布式事务协调器 (DTC) 通信以开始事务。 DTC 协调实际事务。
- DTC 生成事务标识符,并将其传递回 COM+。 事务标识符建立事务边界。 参与事务的所有对象共享相同的标识符。
- 当客户端创建对象时,COM+ 会在事务边界内激活它。
结束事务
当出现以下情况之一时,COM+ 通过提交或中止自动事务来结束该事务:
- 事务的根对象完成其工作,COM+ 将其释放。 根对象停用后,事务将尝试提交。
- 客户端释放根对象。 如果没有引用,根对象将停用,事务会尝试提交。
- 事务超过其超时阈值。 如果事务未在事务超时期限内提交,则事务会自动中止,从而停用与事务关联的所有对象。 默认事务超时时间为 60 秒。
相关主题