在glassfish中空闲时间后,数据库连接不会释放

时间:2013-05-22 04:32:43

标签: mysql jdbc glassfish connection-pooling

我正在使用 Glassfish 3& mysql5.6.11。

我创建了JDBC connection pool in glassfish

Initial and Minimum Pool Size: - 8
Maximum Pool Size: -30
Pool Resize Quantity:- 10
Idle Timeout: - 60 (second).
Max Wait Time:- 2500 (millisecond).

使用此参数我有创建的池设置

我有设置池调整大小数值

当没有连接增加时,它在空闲超时后不会释放。 下次当我点击url它再次增加no连接时,它不会重用已经打开的连接。

我正在异常

java.sql.SQLException: Error in allocating a connection. Cause: In-use connections equal max-pool-size and expired max-wait-time. Cannot allocate more connections.

我在mysql中使用show processlist来显示打开的连接。

如果有人知道这个问题的解决方案,请与我分享您的想法。

我需要任何人的帮助。

1 个答案:

答案 0 :(得分:0)

空闲超时只是池中未使用的连接在关闭/回收之前保留在池中的时间。您遇到的问题很可能是您在使用后没有关闭连接。

修复代码以在完成连接时关闭连接,关闭连接会将其释放回连接池,以便可以重复使用。

某些连接池在可以使用连接时有额外的超时,在此之后强制连接回池中。该连接的用户看起来好像连接已关闭。我不认为glassfish池有这个选项。