短: 在调用transaction.Commit()之后,下一个操作将失败,就好像事务未提交一样。
更多详情: 我们有一个线程对数据库运行写查询,其中一些被封装在一个事务中。 在一段时间后运行较重的负载时,我们遇到一种情况,即提交事务后的操作失败并显示一个错误,指示事务正在进行中,这取决于提交后执行的操作,我们收到以下错误之一:
下一步操作是'开始交易:
...连接不支持并行事务......
下一步操作是插入/更新/删除
ExecuteNonQuery需要命令 当分配给命令的连接在a中时,有一个事务 等待本地交易。命令的Transaction属性 尚未初始化。
通过调试器检查Sql Connection对象显示它包含一个'sqlInnerTransaction'对象,其父对象设置为null。 我们知道对“提交”的调用已成功完成且没有错误 运行.net 4.0,SQL Server 2008 R2 SP2
答案 0 :(得分:6)
看着这条消息:
Connection不支持并行事务
我想知道你是否在多个线程中使用单个连接对象?
连接不是线程安全的。您只应在创建它们的线程中使用它们。