加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 连接池管理

发布时间:2020-12-15 08:08:43 所属栏目:百科 来源:网络整理
导读:我正在开发一种高负载的Web服务,它可以提供尽可能快的响应.该服务应与各种数据库保持一系列连接,以提高性能.我建议使用连接池.可能存在与DB的连接问题,因为我们通过VPN有很多远程访问数据库的问题.正如我所说,服务应尽可能保持连接. 什么是连接池管理算法?
我正在开发一种高负载的Web服务,它可以提供尽可能快的响应.该服务应与各种数据库保持一系列连接,以提高性能.我建议使用连接池.可能存在与DB的连接问题,因为我们通过VPN有很多远程访问数据库的问题.正如我所说,服务应尽可能保持连接.

什么是连接池管理算法?

我有一个连接字符串:
码:

User Id=inet;Password=somePassw0rd;Data Source=TEST11;Min Pool Size=5;Max Pool Size=15;Pooling=True

然后我只需在我的代码中打开和关闭连接.而已.

此刻一切都还好.数据库端有五个会话.所以我会杀死一个会话来模拟连接问题.在某些情况下,池管理器将恢复连接,在某些情况下,它不会.

如果我杀死所有五个连接,他们永远不会恢复.

我怎样才能确定合并经理?检查DB连接之间的持续时间的任何设置?

我用过validate connection = true;它似乎对我来说很好,但是如果需要重新连接到DB则需要一些努力,因此拥有一个已经很好的连接会更有效.

我使用的组件是devArt dotConnect for Oracle.
提前致谢!

解决方法

我不确定您正在关注什么,但这可能很有用:如果连接空闲一段时间或服务器关闭,则会自动清除池.但是,您可以使用OracleConnection的 ClearPool或 ClearAllPools方法强制池清除(这些方法通常存在于大多数ADO.NET提供程序中,也不是必需的).

请注意,如果您使用的是Oracle 11g,DotConnect也支持Oracle的Database Resident Connection Pooling (DRCP),这可能是最好的集合方式,因为它是由Oracle自己提供的(虽然我对此没有任何经验).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读