找回密码
 立即注册

QQ登录

只需一步,快速开始

gery
金牌服务用户   /  发表于:2024-12-13 13:51  /   查看:93  /  回复:6
我针对自研数据库开发了ODBC驱动,现在在AR报表中使用ODBC进行连接,当我配置数据源和数据集后,进行预览能够正确获取数据,可是客户端并没有去释放连接句柄,导致我多次预览时后连接数就会持续增加,了解到AR是使用的:System.Data.Odbc连接的ODBC,其中DbConnection.Close应该是会去调用关闭连接函数[SQLDisconnect]的,我通过日志监控查看,发现并没有调用这个函数,可是当我仅仅测试连接数据源功能时,是会去调用SQLDisconnect的,所以想知道AR-ODBC连接进行报表预览时DbConnection.Close调用时机,是否是我使用不当或者其它原因。

6 个回复

倒序浏览
Eden.SunWyn认证
超级版主   /  发表于:2024-12-13 18:23:20
沙发
您好,我们这边目前不是特别清楚具体的流程,和开发同事确认一下之后在给您确切的答复。
回复 使用道具 举报
gery
金牌服务用户   /  发表于:7 天前
板凳
请问下确认得怎么样了?
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:7 天前
地板
gery 发表于 2024-12-16 16:34
请问下确认得怎么样了?

确认了一下,数据库的连接会在数据查询结束后1-2分钟内自动断开连接。
回复 使用道具 举报
gery
金牌服务用户   /  发表于:6 天前
5#
意思是数据库的连接会在数据查询结束后1-2分钟内会去主动调用DbConnection.Close这个吗?
回复 使用道具 举报
gery
金牌服务用户   /  发表于:6 天前
6#
通过我的实际验证来看,似乎并没有去自动去调用关闭相关的接口。我通过其他isql连接工具来连接我的ODBC驱动的时候,断开连接时是会去调用关闭相关函数的。不知道AR是否有什么特殊判断逻辑
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:6 天前
7#
您好,您可以试一下直接数据库查询一下连接数。

我们是用mysql测试的,mysql查询连接的数及客户端IP:
  1. SELECT
  2.     ID,
  3.     USER,
  4.     HOST,
  5.     DB,
  6.     COMMAND,
  7.     TIME,
  8.     STATE,
  9.     INFO
  10. FROM
  11.     information_schema.PROCESSLIST;
复制代码
使用AR查询预览一次,然后利用这个查看ODBC对应的那个连接,我们测试的结果都是 1-2分钟,对应的连接就消失了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部