按照DBCP文档 ,的BasicDataSource不支持setLoginTimeout()。 我的问题是,那么我该如何设置用于创建连接对象的LoginTimeout? 我知道我可以在游泳池设置MAXWAIT,但我的理解是,那将只能用于池何时耗尽,你等待现有连接释放。 它不会救我从那里一个新的连接需要创建的情况,但连接/登录到数据库挂起。
任何帮助表示赞赏。 谢谢。
按照DBCP文档 ,的BasicDataSource不支持setLoginTimeout()。 我的问题是,那么我该如何设置用于创建连接对象的LoginTimeout? 我知道我可以在游泳池设置MAXWAIT,但我的理解是,那将只能用于池何时耗尽,你等待现有连接释放。 它不会救我从那里一个新的连接需要创建的情况,但连接/登录到数据库挂起。
任何帮助表示赞赏。 谢谢。
那么总有正确的参数添加到URL的选项。 根据其DB你使用,你可以添加在JDBC URL的参数之一。
这里是链接 ,确认的BasicDataSource不支持loginTimeout
而在这个博客的底部有它列出的URL参数连接超时的表。
@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:
您可以添加使用更多的性能;
在酒店的结尾。