ColdFusion 10通信链接失败到MySQL

我们正在将一些网站迁移到运行Windows 2008虚拟机的云基础架构上.这些网站都在使用MySQL数据库的ColdFusion上运行.他们目前在我们的CoLo中运行没有任何问题.此外,它们在我们办公室的开发网络上运行,没有任何问题.

我们正在设置我们的云,以尽可能地匹配我们当前使用的配置,实际上,一台服务器上的CF10 IIS和另一台机器上的MySQL.我们99%完成,大多数事情都很好.然而….

我们遇到了一对,就像2,我们点击链接/按钮的地方,迎接:

执行数据库查询时出错.

通信链路故障从服务器成功接收的最后一个数据包是0毫秒前.成功发送到服务器的最后一个数据包是0毫秒前.

扫描堆栈跟踪我还发现:
引起:java.net.SocketException:连接重置

通信链路错误始终为:0ms.

最令人费解的是,似乎导致这种问题的查询是简单的查询,这些查询在所有站点上都没有问题.为什么他们在这两个特定的地方失败让我们陷入困境.

我们唯一的线索是,查看调用脚本的CF错误描述,我们可以看到查询失败的脚本被调用两次?例如,其中一个出现在我们的应用程序文件中:

>The error occurred in D:/Our_Web_Sites/oursite/Application.cfm: line 73
>Called from D:/Our_Web_Sites/oursite/Application.cfm: line 17
>Called from D:/Our_Web_Sites/oursite/Application.cfm: line 1
>Called from D:/Our_Web_Sites/oursite/Application.cfm: line 73
>Called from D:/Our_Web_Sites/oursite/Application.cfm: line 17
>Called from D:/Our_Web_Sites/oursite/Application.cfm: line 1

我们的CF代码中没有任何内容会导致脚本被调用两次,所以我们的猜测是第一次调用失败,因此CF再次尝试…只是失败和错误.

谷歌搜索这个问题我发现很多关于改变MySQL超时的帖子.这些都不起作用,我没想到它们,因为我们正在处理的事情似乎不是超时问题.这些页面每次都会失败.

我们最接近解决方案的是这篇博文:
http://www.talkingtree.com/blog/index.cfm/2011/1/12/Validation-Query-for-MySQL-communications-link-failure

如果我们在CFAdmin中UNCHECK“维护客户端请求之间的连接.”设置,则错误消失.博客建议保留已选中的,这是我们的首选,并使用“SELECT 1;”的连接验证.试试……同样的错误.

我们还尝试了JDBC AutoConnect = true选项.没有效果.

下载最新的JDBC Connector并使用它代替标准的CF10-MySQL连接器.没有效果.

同样,99%的网站使用这两个链接除外,这两个链接在我们所有其他环境中都可以正常工作.还有其他想法吗?

最佳答案
我觉得每次升级CF或MySQL时都会遇到类似的问题.通常,JDBC驱动程序或连接字符串的更改会有所帮助,我认为您已经尝试过了.

您是否检查了MySQL错误日志中的任何提示?我们在/ var / lib / mysql中(无论你的’datadir’变量设置为什么),以.err扩展名结尾.

另外,也许为您的版本尝试一些其他JDBC连接字符串选项?我看到你可以启用一些扩展日志记录.
http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html

转载注明原文:ColdFusion 10通信链接失败到MySQL - 代码日志