0

我们有一个在 JBoss EJB 容器中运行的应用程序。此应用程序连接到 mysql 并在 mysql 上运行存储过程。我们观察到,在某个时间点之后,Jboss 停止响应与托管在其上的 Web 应用程序的 Web 连接。所以经过调查我们发现了以下问题。

  1. 来自 jboss 的套接字连接数不断增加,一旦超过千,我们观察到 jboss 完全停止工作,因为进程对套接字连接数的限制(即 1024),我们交叉检查了套接字连接的代码,但我们觉得它只与mysql建立套接字连接,所以要么这是一个问题,要么是其他原因在做这个,找不到真正的原因。我们已经尝试在 linux 上使用 netstat、lsof,任何其他找到连接问题根本原因的建议都会有很大帮助。
  2. 我们还检查了 mysql 的 show processlist,但它在任何时间点都只显示了 8 到 10 个活动连接。所以这里没有运气。
  3. 还有一个有趣的事情,我们将应用程序的连接超时从 86400 秒减少到 30 秒,我们将 mysql 数据库的等待超时减少到 50 秒,因此有 20 秒的差距。我们一次又一次地交叉检查数据库是否存在任何问题,但这几乎不会影响它。但是这方面的任何建议也会有所帮助。我们计划将差异减少到 5 秒。

更新:我们随后将连接超时从 30 更改为 170,并将 mysql waittimeout 更改为 180

我们已经尝试根据 jboss 论坛进行更改,上面写着缓存连接管理器标签,我们必须启用一个名为 debug=true 的属性,我们已经尝试过这个解决方案,但是如果有事务,这会导致它们丢失,这对我们的应用程序造成了严重破坏,我们随后恢复了更改,并像那样运行它,但应用程序仍处于灾难的边缘。我们仍然一无所知,JBOSS 似乎是我们问题的核心,仍然没有解决方案:(

4

0 回答 0