有没有办法释放饱和的连接池?

3 java database connection-pooling open-esb ibm-midrange

我在glassfish服务器上使用open esb.我们有一个与as400数据库一起使用的连接池.

每隔几天我们就会收到此错误:分配连接时出错.原因:正在使用的连接等于max-pool-size和expired max-wait-time.无法分配更多连接

缓解cp的最佳方法是重启服务器.我们还设法设置了另一个具有相同属性的cp.

我的问题是:有没有办法主动"告诉"cp释放所有打开的连接?

干杯,伊兰

Tho*_*sen 5

在此之前,找出未正确释放连接的原因.听起来有一个地方会被遗忘(你在finally子句中有所有close()吗?).

我强烈推荐Michael Nygards"释放它!" 用于使软件生产准备就绪的技术.

编辑#1:如果我正确理解你的描述你的后端程序进入QSYSOPR中的MSGW导致挂起连接,直到给出响应,在你的情况下接近永远.是否可以选择使用默认回复为"C"的配置文件,它允许故障作为例外传播给您?

否则,您可以为连接或整个服务器设置24小时的超时时间?然后至少连接将最终关闭.该解决方案虽然不能扩展,但可以使开发更容易.

请注意,也可以有一个单独的监视线程,它会定期查找MSGW并在抓取回叫堆栈后自动向他们发送答案以进行事后分析.