2

一旦进程/连接关闭,如何从 dotnet(C#) 清除连接池?我正在使用 sybase aseconnection ,即使从 ado.net 关闭连接后,我也可以在池中看到一些打开的连接。有什么办法可以从 dotnet 代码中清除它们。任何人都可以帮我解决这个问题。

我正在使用 sybase 版本(“Adaptive Server Enterprise/15.5/EBF 19397 SMP ESD#5/P/ia64/HP-UX B.11.23/asear155/2568/64-bit/FBO/Fri”)。

4

1 回答 1

9

根据 Sybase 页面上的 API 文档,您可以通过在连接字符串中设置 Connection Lifetime 属性来控制池中连接的生命周期。它默认为 0,这意味着不确定。

AseConnection 文档

连接寿命

连接可以保持打开状态的时间(以秒为单位)。当客户端关闭已达到或超过定义的连接生命周期的连接时,在驱动程序关闭连接而不是将其返回到连接池之前。一旦空闲连接达到定义的连接生命周期,它就会关闭并从连接池中删除。

Connection Lifetime 的默认值为 0,表示连接可以无限期保持打开状态。

第二个有趣的属性是:

连接空闲超时

在驱动程序关闭连接之前,连接可以在连接池中保持空闲的时间(以秒为单位)。值 0 允许连接无限期地保持空闲状态。

您应该能够使用此连接字符串设置它们(1 分钟生命周期和空闲超时):

"Server=srv;Port=5000;uid=u;pwd=p;Connection Lifetime=60;Connection Idle Timeout=60;"
于 2013-04-30T18:29:13.097 回答