10

我将 ColdFusion 与 Microsoft SQL Server 2005 一起使用,有时我会收到此错误:

“[Macromedia][SQLServer JDBC 驱动程序]对象已关闭。”

正如人们所期望的那样,回溯总是会导致 SQL 查询,即使是没有 JOIN 或输入​​参数或任何花哨的简单 SELECT 命令。

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

(同样重启也不是解决方案。在生产环境中,不能有任意页面在任意时间给出任意错误消息。)

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

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

任何帮助表示赞赏。

4

7 回答 7

10

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

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

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

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

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

于 2012-01-26T16:55:39.457 回答
2

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

于 2012-05-14T21:04:50.933 回答
0

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

无论如何,谢谢所有回答的人!

于 2010-11-30T14:46:56.897 回答
0

像大多数行为不端的软件一样,我首先看的是驱动程序。您可能希望确保您使用的是最新的 Microsoft JDBC 驱动程序。我知道他们已经改进了最新驱动程序的性能,这也可能解决您看到的问题。

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

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

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

于 2010-11-02T15:44:51.233 回答
0

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

于 2010-11-02T14:58:39.760 回答
0

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

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

于 2010-11-02T17:13:16.673 回答
0

我将分享一个观察结果,当事实证明由于某种原因,SQL Server 已经停止时,我遇到了这个问题。重新启动它修复了它。

您可能会认为“肯定有人会注意到这一点”,但有可能对于一个主要在 CRUD 中执行 R 的 Web 应用程序,可能只有部分请求而不是所有请求会失败——只有那些真正试图与D b。这可能是因为在 CF 中使用了查询缓存,或者 Web 服务器或代理缓存,或浏览器缓存等。我确实很惊讶地发现数据库已关闭。

于 2020-10-12T18:58:16.153 回答