连接池管理

本文关键字:管理 连接 | 更新日期: 2023-09-27 18:10:50

我正在开发一个高负载的web服务,它将提供尽可能快的响应。该服务应该保持与各种数据库的大量连接,以获得更快的性能。我建议使用连接池。可能会有连接到DB的问题,因为我们有很多通过VPN远程访问DB的机会。正如我所说,服务应该尽可能长时间保持连接。

连接池管理算法是什么?

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

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

然后在我的代码中打开和关闭连接。就是这样。

现在一切都很好。DB端有5个会话。所以我会终止一个会话来模拟连接问题。在某些情况下,连接将由池管理器恢复,而在某些情况下则不会。

如果我杀死所有五个连接,它们将永远不会恢复。

如何配置池管理器?检查DB连接之间的持续时间是否有任何设置?

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

我使用的组件是devArt dotConnect for Oracle。提前感谢!

连接池管理

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

请注意,如果您使用Oracle 11g, DotConnect还支持Oracle的数据库驻留连接池(DRCP),这可能是最好的池化方式,因为它是由Oracle自己提供的(我没有任何经验)。