2

我保留了一个 Advantage TAdsConnection 对象池,并按要求分发它们。有时我会遇到一个导致 6610 错误的故障,我假设是因为它处于空闲状态并且连接已重置。我可以运行任何旧查询并捕获 6610,但是等待该特定错误需要很长时间。

有没有一种好方法可以在我将优势连接传回之前检查它的运行状况?

4

2 回答 2

6

您可以使用AdsIsConnectionAlive ACE API 来测试连接。此 API 将向服务器发送一个小的“回声”数据包,以测试连接是否正常。

于 2012-10-16T14:16:00.663 回答
0

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

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

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

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

于 2012-10-16T03:07:13.180 回答