我正在开发一个高负载的网络服务,需要尽可能快地提供响应。该服务应该保持多个连接到不同的数据库以提高性能。我建议使用连接池来实现。由于我们通过VPN对数据库进行大量远程访问,可能会出现连接问题。正如我所说,服务应该尽可能长时间保留连接。
连接池管理算法是什么?
我有一个连接字符串:
User Id=inet;Password=somePassw0rd;Data Source=TEST11;Min Pool Size=5;Max Pool Size=15;Pooling=True
然后我只需在我的代码中打开和关闭连接。就这样。
目前一切正常。数据库上有五个会话。因此,我将杀死一个会话以模拟连接问题。在某些情况下,连接将由池管理器恢复,在某些情况下则不会。
如果我杀死了所有五个连接,它们将永远不会被恢复。
如何配置池管理器?是否有关于检查DB连接之间的持续时间的设置?
我已经使用了
validate connection=true;
,对我来说似乎工作得很好,但如果需要重新连接到数据库,则需要一些努力,因此拥有已经良好的连接更加有效。我使用的组件是devArt dotConnect for Oracle。
谢谢!