|
|
1
2
由于VB和.NET将使用不同的SQL连接(并且无法使ADO和ADO.NET共享相同的连接),因此您唯一的可能是登记DTC(分布式事务协调器)。故障诊断码将协调这两个独立的事务,以便它们一起提交或回滚。 从.NET ,EnterpriseServices管理COM+功能,例如DTC。在.NET 2.0和Forward中,您可以使用System.Transactions命名空间,这会使情况变得更好。我认为这样的代码应该可以工作(未测试的代码):
我对这方面还不够熟悉,不能给你更多的建议。 在COM+端 ,需要将对象配置为使用分布式事务(很可能是“需要”)。您可以从COM+资源管理器转到对象的 性质 选择 交易 选项卡,然后单击“ 要求的 “。我不记得您是否也可以从代码中做到这一点;vb6是在COM+发布之前创建的,因此它并不完全支持COM+所做的一切(它的事务支持是针对COM+的前身,称为MS Transaction Server)。 如果一切正常,则COM+对象应登记在.NET代码创建的现有上下文中。 您可以使用“组件服务”中的“分布式事务处理协调器\事务列表”节点来检查和查看在调用期间创建的分布式事务。 请注意,在提交事务之前,您无法看到来自COM+组件的更改反映在来自.NET端的数据查询上!事实上,死锁是可能的!请记住,DTC将确保这两个事务是成对的,但它们仍然是单独的数据库事务。 |
|
|
2
1
你是如何实现这一点的?如果您使用EnterpriseServices来管理.NET事务,那么两个事务都应该回滚,因为您对它们都使用相同的上下文。 |
|
|
Jake · 如何回滚臭鼬事务以进行集成测试?(缺少隐式原点) 1 年前 |
|
|
Riyaz Vagapov · EF核心交易 2 年前 |
|
|
M. Kemp · Oracle删除操作将永远存在 2 年前 |
|
Kuldeep · 我们什么时候应该在数据库中进行交易? 2 年前 |