gpt4 book ai didi

sql - "This SqlTransaction has completed; it is no longer usable."...配置错误?

转载 作者:行者123 更新时间:2023-12-04 12:42:52 30 4
gpt4 key购买 nike

我已经为此工作了大约一天半,并在网上搜索了大量博客和帮助文章。我在 SO 上发现了几个与此错误相关的问题,但我认为它们并不完全适用于我的情况(或者在某些情况下,不幸的是,我无法很好地理解它们以实现 :P)。我不确定我是否可以很好地描述这一点以获得帮助......但这里是:

我们有一个 .NET 应用程序来跟踪我们的资源。有将资源复制到时间跟踪系统和计费系统的导出功能;这将访问链接到时间和计费数据库的存储过程。

我最近将计费系统数据库移到了新服务器(原服务器:Server 2003 SP2、SQL 2005;新服务器:Server 2008 R2、SQL 2008 R2)。我有一个指向 2008 数据库的链接服务器设置。我更新了存储过程以指向 2008 服务器,然后我收到了关于 MSDTC 和 RPC 的错误(http://www.safnet.com/writing/tech/archives/2007/06/server_myserver.html)。我在链接服务器上启用了“rpc/rpc out”,并将 MSDTC 设置为允许网络访问(类似这样:http://www.sqlwebpedia.com/content/msdtc-troubleshooting)。

现在,当我尝试运行导出功能时,我得到了上述信息:“此 SqlTransaction 已完成;它不再可用。”对我来说奇怪的是,当我刚刚运行存储过程(来自 SSMS)时,它说它成功完成。

有没有人见过这个?我在配置中遗漏了什么吗?我继续浏览相同的页面,我发现的唯一一件事是我在更改 MSDTC 后没有重新启动(此处提到:http://social.msdn.microsoft.com/forums/en-US/adodotnetdataproviders/thread/7172223f-acbe-4472-8cdf-feec80fd2e64/)。

我可以发布部分或全部存储过程,如果有帮助的话...请告诉我。

最佳答案

我相信此错误消息是由于“僵尸交易”造成的。

寻找事务被提交两次(或回滚两次,或回滚并提交等)的可能区域。 .Net 代码是否在 SP 已经提交事务之后提交事务? .Net 代码是否在遇到错误时回滚它,然后尝试在 catch(或 finally)子句中再次回滚它?

有可能在旧服务器上从未遇到过错误情况,因此从未遇到过错误的“双重回滚”代码。也许现在你有这样一种情况,新服务器上有一些配置错误,现在错误代码通过异常处理被命中。

你能调试到错误代码中吗?你有堆栈跟踪吗?

关于sql - "This SqlTransaction has completed; it is no longer usable."...配置错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6358806/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com