使用我们的J2EE应用程序遇到以下错误:
java.sql.SQLException:分配连接时出错.原因:正在使用的连接等于max-pool-size和expired max-wait-time.无法分配更多连接.
我如何知道应用程序当前使用了多少连接以及为高流量应用程序设置的最佳连接池设置应该是什么?我可以更改它,我如何确定应该将其设置为什么(是内存问题,带宽等)?
如何知道应用程序当前使用了多少连接
您没有提供足够的信息来回答这个问题.大多数应用服务器都会对此类内容进行某种JMX报告.或者,根据数据库,您可以找到当前打开的连接数.
什么应该是大流量应用程序的最佳连接池设置
比你有的高?
上面当然假设你没有错误处理连接.我的意思是,如果你在代码中直接使用它们,你应该总是使用这个成语:
Connection conn = null; try { conn = ... ; // get connection // do stuff } finally { if (conn != null) try { conn.close(); } catch (Exception e) { } }
如果您没有释放连接回池并且正在等待垃圾收集器清理它们并释放它们,那么您将使用更多实际需要的连接.