加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

奇怪的SQL2005问题. “SqlConnection不支持并行事务”

发布时间:2021-01-12 10:46:58 所属栏目:编程 来源:网络整理
导读:我有一个问题似乎是死锁情况的结果. 我们现在正在寻找问题的根源,但同时我们想重新启动服务器并让客户继续前进. 现在每次我们启动程序时它只是说“SqlConnection不支持并行事务”.我们没有改变程序,编译和客户服务器上的任何内容,但在“可能的死锁” – 情况

我有一个问题似乎是死锁情况的结果.
我们现在正在寻找问题的根源,但同时我们想重新启动服务器并让客户继续前进.

现在每次我们启动程序时它只是说“SqlConnection不支持并行事务”.我们没有改变程序,编译和客户服务器上的任何内容,但在“可能的死锁” – 情况后,它想要再次上线.

我们有7个运行程序的客户端(计算机),每个客户端正在与本地服务器上的Web服务进行通信,并且Web服务正在与sql-server(与Web服务器相同的机器)进行通信.

我们已经重新启动了sql-server和iis-server,但没有重新启动服务器,因为服务器上运行了其他重要的服务,所以我们做的最后一件事.
我们可以在管理选项卡中找不到锁或任何东西.

所以我的问题是,为什么“SqlConnection不支持并行事务”错误从一次传递到另一次而不改变程序中的任何内容,它仍然存在于sql-restart之间.

它似乎发生在程序启动时的第一个db-request处.

如果您需要更多信息,请询问.我很困惑……

更多信息:
我不认为我有“长期”运行交易.方案通常是我有一个20-100行(ContractRows)的数据集,其中Ill在tableAdapter上执行.Update.我还循环了那些20-100行,对于其中一些,我创建了ad-hook-sql-querys(例如,如果租用的产品被标记为返回,我创建一个sql-query来标记产品在数据库中返回)

所以我这样做非常简单:

Create objTransactionObject
Create objtableadapter (objTransactionObject)
for each row in contractDS.contractrows
  if row.isreturned then
    strSQL &= "update product set instock=1 where prodid=" & row.productid & vbcrlf
 End if
next
objtableadapter.update(contractDS)
objData.ExecuteQuery(strSQL,objTransactionObject)    
if succsesfull 
  objtransactionobject.commit
else
  objtransactionobject.rollback
end if
objTran.Dispose()

然后我做提交或回滚取决于它是否进展顺利.

编辑:没有一个答案解决了问题,但我会感谢你拍摄指针的好麻烦.

“SqlConnection不支持并行事务”突然消失了,现在sql-server只是“每天下降”4-5次,我想这是一个僵局,但是我没有正确的知识发现并且很短现在可以为我监控的sql专家.我只是重新启动sql-server,一切都恢复正常. 10次??中的1次我还要重新启动计算机.它真的很烦我(当然还有我的客户).

任何知道一个人在分析瑞典(或世界各地,英语)的死锁或其他sql问题的麻烦的人都可以自由地联系我.我知道这不是一个联系网站,但我带着我的问题,因为我已经用完了选项,我花了3天时间优化客户,以确保我们关闭连接并且不要做太多愚蠢的事情.没有运气.

解决方法

看起来您正在共享连接并在同一个开放连接上创建新事务(这是您所看到的异常的并行部分).

您的示例似乎支持这一点,因为您没有提到如何获取其中的连接.

您应该检查您的代码,并确保您只打开一个连接,然后在完成后处理它(并且一定要使用using语句来确保关闭连接),因为它似乎就像你在某处打开一个.

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读