java - 如何监控我的连接去向?

标签 java tomcat jdbc connection-pooling

我运行一些 tomcat 应用程序,使用 jndi 连接池。 在某些时候连接池停止提供连接和应用程序挂起。 似乎是因为某些代码接收到连接并且没有将其返回到池中。 我如何监控 - 哪些代码执行此操作? 更常见 - 我想看看此时所有连接都在做什么。

我无法更改应用程序。但是我可以调整 Tomcat,也许添加一些拦截器。

最佳答案

大多数连接池实现都可以配置为检测未返回到池中的连接。例如。对于 Tomcat 的 JDBC 连接池,“放弃的连接”(租约过期的连接)有多种配置选项。如果您在 this 上搜索“废弃”网页,您会找到以下选项:

  • 删除放弃
  • 移除AbandonedTimeout
  • 记录放弃
  • 怀疑超时

如网页上所述,这些设置会增加一些开销,但至少您的应用程序不会挂起。测试您的应用程序时,为 removeAbandonedTimeoutmaxActive 设置一个较低的值,以便您可以及早捕获未返回的连接。

关于java - 如何监控我的连接去向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21040635/

相关文章:

java - 带有 MySQL Server 5.6 的 Liferay 7 无法启动

tomcat - Tomcat 7.0 的 CPU 利用率为 100%

sql-server - ClassNotFoundException - com.microsoft.jdbc.sqlserver.SQLServerDriver

java - 如何以编程方式将多个 ImageView 添加到 Framelayout?

java - JAAD 阻止其他供应商工作

bash - sed 在树线之间删除

java - 在参数化查询中使用加号连接字符串

java - JDBC:更新表的最佳方法?

java - kundera-cassandra 使用 spring 时在 EntityManagerFactory 上设置 cql 版本

java - JScrollPane - 新行上的多个图像