MS-SQL / ColdFusion:神秘数据库错误:对象已关闭

时间:2010-11-02 14:32:43

标签: sql-server sql-server-2005 coldfusion coldfusion-9

我正在使用ColdFusion和Microsoft SQL Server 2005,有时我会收到此错误:

“[Macromedia] [SQLServer JDBC Driver]对象已关闭。”

回溯总会导致一个人们期望的SQL查询,即使是没有JOIN或输入参数的简单SELECT命令,也可能是任何花哨的东西。

到目前为止,我听到的唯一解决方案是重新启动“服务”,我只能想象它是指SQL Server服务。我已经尝试重新启动SQL Server和ColdFusion服务,但它仍然会随机发生。

(重启也不是解决方案。在生产环境中,任意页面都不能随意提供任意错误消息。)

当它发生时,它会持续发生几分钟,然后消失并可能在几秒钟或几分钟内恢复。它开始发生在我开发应用程序的JavaScript部分时,它应该与ColdFusion代码或SQL命令无关。

到目前为止,我的在线搜索一直没有结果。

任何帮助表示感谢。

7 个答案:

答案 0 :(得分:10)

这是旧的,但我刚刚遇到这个并找到了一种方法,无需重新启动CF。

在ColdFusion Administrator中,转到数据源并编辑导致问题的数据源。对其进行更改,例如检查不重要的框,然后提交。

这将重新配置连接并允许它工作。回去并取消勾选方框(如果你真的不想勾选它)。

例如。我关闭了“启用高位ASCII字符...”点击提交,数据源工作。然后我又回去检查了一下,然后再次提交更改。

不重启!如果这是一个生产箱,这是理想的选择。

答案 1 :(得分:2)

我们遇到了CF9的这个问题,重启服务没有帮助。我们在CF配置中删除并重新创建了有问题的DSN,这解决了问题。因此,如果其他解决方案不起作用,请尝试一下。

答案 2 :(得分:0)

我的直觉是,您需要查看代码之外的内容,并与DBA合作调查数据库服务器本身的稳定性。听起来好像SQL Server服务正在挂起或没有响应。

答案 3 :(得分:0)

与大多数行为不端的软件一样,我看的第一个地方是司机。您可能希望确保使用最新的Microsoft JDBC驱动程序。我知道他们已经改善了他们最新驱动程序的性能,这也可以解决你所看到的问题。

如果您使用的是ColdFusion附带的驱动程序,则绝对值得升级。

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a737000d-68d0-4531-b65d-da0f2a735707&displaylang=en

请注意,如果您进行升级,如果您有INSERT语句使用SCOPE_IDENTITY()返回新插入行的ID,则需要在SET NOCOUNT ON;在每个INSERT语句的顶部,以防止SQL Server返回插入的行数而不是插入行的ID。

答案 4 :(得分:0)

sQL 2K中存在一个错误,我认为2K5,系统会认为它处于关机模式,尽管从未被要求关闭服务。 IIRC,它抛出了类似于你的错误。有一个补丁发布我的MS,虽然我似乎记得它是一个单独的下载而不是MS Update的一部分。

很抱歉这么模糊,但是我处理这个问题已经有一段时间了。希望这有助于您入门。

答案 5 :(得分:0)

事实证明,这只是在服务器过载时发生的。除了重新启动和/或从服务器中删除负载之外,似乎没有任何补救措施。

谢谢所有回答的人!

答案 6 :(得分:0)

我将分享一个观察结果,当我发现由于某些原因SQL Server已停止时,我遇到了这个问题。重新启动它可以解决它。

您可能会认为“肯定有人会注意到”,但是对于大多数在CRUD中执行R的网络应用来说,很可能只有部分请求失败,而并非所有请求都会失败,只有那些真正试图与数据库交谈。那可能是因为在CF中使用了查询缓存,或者在Web服务器或代理缓存中使用了缓存,或者在浏览器缓存中使用了缓存。我确实很惊讶地发现DB崩溃了。