Apache DBCP 中的 maxWait 是什么?

What is maxWait in Apache DBCP?

我正在尝试了解 maxWait 在 org.apache.commons.dbcp.BasicDataSource 中的含义。 Documentation表示是:

The maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception, or <= 0 to wait indefinitely.

但是还是看不懂。我尝试 google 它,但我的疑虑只增不减。

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

  1. maxWait 是使用此池的应用程序在出现异常之前等待的最大毫秒数,前提是该池没有 return 到应用程序的空闲连接。 IE。如果池中没有空闲连接,应用程序将等待新连接的这段时间,直到出现异常。
  2. maxWait 是可以打开连接的最大毫秒数。如果在这段时间内没有关闭此类连接,池将引发异常。

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

maxWait 应该是当所有连接当前都忙时,您的连接调用将在抛出异常之前在池中等待的时间。

您在 #2 中描述的行为似乎是日志放弃超时,这是在池决定它已被放弃(未关闭,这只是 return 之前可以租用连接的时间长度它到池而不是实际关闭它。)

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