检查Advantage Database连接的运行状况

时间:2012-10-16 02:08:24

标签: delphi advantage-database-server

我保留了一个Advantage TAdsConnection对象池并按要求将它们移出。偶尔我得到一个导致6610错误,我假设因为它处于空闲状态并且连接被重置。我可以运行任何旧的查询并捕获6610,但这是一个漫长的等待特定错误。

在我将优惠连接传回原状之前,是否有一种检查优势连接健康状况的好方法?

2 个答案:

答案 0 :(得分:6)

您可以使用AdsIsConnectionAlive ACE API来测试连接。此API将向服务器发送一个小的“echo”数据包,以测试连接是否仍然存在。

答案 1 :(得分:0)

这几乎是你的朋友。我会设置一个合理的超时并删除您的自定义池(除非您因为优化而绝对需要池)。我打算在“超时”下提出这个问题作为可能的问题。替换你的代码(我假设是一个函数调用),返回一个新的连接实例,看看你是否可以复制它。

您还没有指定您正在使用的数据库版本。当我处理该数据库时,Advantage 6/7/8比9/10有更多问题。

假设您的代码不是问题(严重的是,禁用自定义池),请检查您的网络基础架构并致电支持部门。否则,请阅读TAdsConnection类的文档:可能会增加服务器端和客户端的超时。

简短的回答:我不会手动汇集,数据库具有内置的本质,使用它。