服务器端不同项目不同数据库通过webservice进行相互间的交易。using (TransactionScope ts = new TransactionScope())
{
1. 调用webservice向数据库A插入数据
2.查询刚才插入到数据库A的信息更新数据库B
}请教:
1.因为第二步我需要第一步插入的数据,所以当前步骤1,webservice端也是个事务,会提交。如果第二步出错,当前只有第2步会回滚,请问可否实现1,2步都会滚,但是第二步时候能获得第一步插入的数据,这是否是脏读。
2.如何保证webservice端全部插入数据后才执行第二步,因为无法获知webservice端是否已经执行完毕,现在经常导致第二步出错。难道要在A数据库循环查找所需数据是否都成功提交再执行第二步吗?
{
1. 调用webservice向数据库A插入数据
2.查询刚才插入到数据库A的信息更新数据库B
}请教:
1.因为第二步我需要第一步插入的数据,所以当前步骤1,webservice端也是个事务,会提交。如果第二步出错,当前只有第2步会回滚,请问可否实现1,2步都会滚,但是第二步时候能获得第一步插入的数据,这是否是脏读。
2.如何保证webservice端全部插入数据后才执行第二步,因为无法获知webservice端是否已经执行完毕,现在经常导致第二步出错。难道要在A数据库循环查找所需数据是否都成功提交再执行第二步吗?
1.webservice端的交易是否可以在本地事务失败时回滚。同时让我想到“网上支付”的流程,如果有个本地事务他有3步,
(1)选购商品;
(2)网上支付;
(3)更新用户选购信息;
如果第三步出错,网上支付这步是如何实现回滚的?
直接封装在using (TransactionScope ts = new TransactionScope()){}中即可吗?这应该不是嵌套事务吧?那webservice端的交易结构是怎么样的,请给个简单的例子明示。