我试图了解org.apache.commons.dbcp.BasicDataSource中的maxWait是什么。 Documentation表示是:


池将等待的最大毫秒数(如果有)
没有可用的连接),以便在此之前返回连接
引发异常,或者

但是我还是不明白。我试图用谷歌搜索,但是我的疑虑才增加。

我看到两种解释该定义的方法:


maxWait是使用该池的应用程序等待该异常(直到该池没有异常)的最大毫秒数(如果该池没有返回到应用程序的空闲连接)。即如果池中没有可用的连接,则应用程序将等待此时间以建立新连接,直到获得异常为止。
maxWait是可以打开连接的最大毫秒数。如果在这段时间内未关闭此类连接,则pool将引发异常。


请帮助我了解哪个说法是正确的。
或可能有其他定义:)

最佳答案

maxWait应该是您的获得连接的调用将在池中等待的时间,然后在当前所有连接都处于繁忙状态时引发异常。

您在#2中描述的行为似乎是日志放弃超时,这是在池确定连接被放弃之前可以将连接租借多长时间(未关闭,这只会将其返回到池中而不是实际关闭它) )

检出http://commons.apache.org/proper/commons-dbcp/configuration.html以查看我所指的废弃设置。

关于java - Apache DBCP中的maxWait是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29520735/

10-11 19:27