2011-01-05 88 views
1

我使用Delphi 2007开发了一个Windows服务。它使用TAdoConnection和TAdoQuery通过Internet连接到远程MySql数据库。我保留默认值为30秒的CommandTimeout属性。我还在每个新查询上创建连接/查询对象,并在完成时释放它们(即,我在启动时不创建数据库连接并保持打开状态)。“在查询过程中丢失与MySQL服务器的连接”杀死Windows服务

每隔一段时间,服务停止并且事件查看器显示“在查询过程中丢失与MySQL服务器的连接”。我有一切都包在例外。我怀疑在执行查询时网络有一个下降。

任何人有任何解决方案/想法?

什么触发窗口关闭服务?

此外,我有服务“恢复”设置为重新启动服务,但这从来没有发生。

我的下一步将是当每个查询开始时开始记录,并将其与关机的日期/时间进行比较。因为截至目前我不知道这是怎么记录的。

+0

您需要记录每个查询并添加一个全局异常处理程序,同时还要记录日志。 – cja 2013-02-18 13:59:48

回答

0

这可能不是一个直接的答案,但我前几天也有同样的问题,并且我在本地服务器上有mysql,并且我使用Mydac组件连接。

多次尝试之后,我发现从具有BLOB字段一个表中的问题就来了,我想在桌子上查询像

SELECT * FROM表

而且我得到了这个问题在查询获取大约1600行后,经过几次检查后,我发现问题来自少量记录,似乎它们已损坏。所以,当我查询像

SELECT * FROM我的表其中id不能和1650 之间1599

我有这个问题,如果我删除Not从他们查询哪些只取回51条记录我错误,这意味着有一些记录被损坏,我也做了mysqlcheck,但它没有解决问题,并且我尝试了一些其他检查工具并得到了相同的结果,我没有试图删除这些记录,因为我需要为什么会出现这个问题,但我忙于其他事情,所以我离开了服务器一段时间。

顺便说一句,我用MySql查询浏览器试图做查询,因为其他工具会给我的错误,而不会显示mysql实例意外终止之前提取的记录数。

+0

我也遇到过这种情况。但是我很抱歉地说它不相关。这是一个非常简单的表格(尽管有备忘录)。而且我知道这不是因为同样的记录被一遍又一遍地读取。 – 2011-01-06 01:23:19

相关问题