java - 我可以更改连接的最大池大小吗?是什么决定了我应该将其设置为什么?

标签 java

我们的 J2EE 应用程序遇到以下错误:

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.

我如何知道应用程序当前使用了多少个连接以及对于高流量应用程序的最佳连接池设置应该是什么?我可以更改它吗?如何确定我应该将其设置为什么(是否是内存问题、带宽问题等)?

最佳答案

How to know how much connection the application is currently using

您没有提供足够的信息来回答这个问题。大多数应用程序服务器都会有某种 JMX 报告这样的事情。或者,根据数据库,您可以找到当前打开的连接数。

what should be the optimal connection pool settings for a heavily traffic applicaiton

比你得到的还高?

当然,以上假设您没有错误处理连接。我的意思是,如果您直接在代码中使用它们,您应该始终使用这个习惯用法:

Connection conn = null;
try {
  conn = ... ; // get connection
  // do stuff
} finally {
  if (conn != null) try { conn.close(); } catch (Exception e) { }
}

如果您没有将连接释放回池中并等待垃圾收集器清理并释放它们,您将使用更多实际需要的连接。

关于java - 我可以更改连接的最大池大小吗?是什么决定了我应该将其设置为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/599422/

相关文章:

java - 是否可以在恒定时间内添加/更新排序列表?

java - 删除或禁用 RAP/RCP EditorPart 上显示的 "X"关闭按钮

Java日历: How to move calendar to next month using JButton?

java - spring boot 依赖注入(inject)

java - java中的方程中的括号使用正确吗?

java - C# 和 Java - 将文件从 Android 上传到 WCF

java - java中将JXDatePicker的日期格式转换为mysql的日期类型存储到数据库中

java - 使用假 smtp 服务器生成 MailSendException

java - 因未知原因而出现错误

java - 有没有其他方法可以在 JPanel 上绘图?