DBCP连接池loginTimeout(DBCP Connection Pool loginTime

2019-07-30 05:33发布

按照DBCP文档 ,的BasicDataSource不支持setLoginTimeout()。 我的问题是,那么我该如何设置用于创建连接对象的LoginTimeout? 我知道我可以在游泳池设置MAXWAIT,但我的理解是,那将只能用于池何时耗尽,你等待现有连接释放。 它不会救我从那里一个新的连接需要创建的情况,但连接/登录到数据库挂起。

任何帮助表示赞赏。 谢谢。

Answer 1:

那么总有正确的参数添加到URL的选项。 根据其DB你使用,你可以添加在JDBC URL的参数之一。

这里是链接 ,确认的BasicDataSource不支持loginTimeout

而在这个博客的底部有它列出的URL参数连接超时的表。



Answer 2:

@Sap是正确的,你可能会使用JDBC的网址,以添加连接属性,例如:

basicDataSource.setUrl("jdbc:postgresql://192.168.0.100:5432/postgres?connectTimeout=TIME_IN_SECONDS");

TIME_IN_SECONDS可以是任何intenger值。

此外,我们可以使用的BasicDataSource#setConnectionProperties 。 作为参数说:

建立新的连接时将被发送到我们的JDBC驱动程序的连接属性。 该字符串的格式必须是[propertyName的=财产;] *注 - “用户”和“密码”特性将被显式传递,所以他们并不需要被包括在这里。

因此,它可能是这样的(并按照前面的例子):

basicDataSource.setUrl("jdbc:postgresql://192.168.0.100:5432/postgres");
basicDataSource.setConnectionProperties("connectTimeout=TIME_IN_SECONDS");

PS:

您可以添加使用更多的性能; 在酒店的结尾。



文章来源: DBCP Connection Pool loginTimeout