检查 Advantage 数据库连接的运行状况
Posted
技术标签:
【中文标题】检查 Advantage 数据库连接的运行状况【英文标题】:Check health of an Advantage Database connection 【发布时间】:2012-10-16 02:08:24 【问题描述】:我保留了一个 Advantage TAdsConnection 对象池,并按要求分发它们。有时我会遇到一个导致 6610 错误的错误,我假设是因为它处于空闲状态并且连接被重置。我可以运行任何旧查询并捕获 6610,但要等待很长时间才能看到特定错误。
在我传回优势连接之前,有没有一种好方法可以检查它的运行状况?
【问题讨论】:
【参考方案1】:您可以使用AdsIsConnectionAlive ACE API 来测试连接。此 API 将向服务器发送一个小的“回声”数据包,以测试连接是否正常。
【讨论】:
【参考方案2】:IT 几乎是您在这方面的朋友。我会设置一个合理的超时并删除您的自定义池(除非您因为优化而绝对需要池)。我将在“超时”下将其归档为可能的问题。用返回一个新的连接实例替换你的代码(我假设它是一个函数调用),看看你是否可以复制它。
您还没有指定您正在使用的数据库版本。当我处理那个数据库时,Advantage 6/7/8 的问题比 9/10 多得多。
假设您的代码不是问题(说真的,请禁用您的自定义池),请检查您的网络基础设施并致电支持。否则请阅读您的 TAdsConnection 类的文档:您可能会增加服务器端和客户端的超时时间。
简短回答:我不会手动池化,数据库具有内置的精髓,使用它。
【讨论】:
以上是关于检查 Advantage 数据库连接的运行状况的主要内容,如果未能解决你的问题,请参考以下文章
Advantage 和 PHP - 错误 6303:超过最大 Advantage 数据库服务器连接数