首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat + mod_jk阻塞其他Apache2 VirtualHost应用程序的mysql连接

Tomcat + mod_jk阻塞其他Apache2 VirtualHost应用程序的mysql连接
EN

Server Fault用户
提问于 2009-12-06 17:33:36
回答 1查看 515关注 0票数 0

我负责一个遗留的Tomcat for应用程序,它以webapp /ROOT的形式运行。以前,该应用程序运行在一个专用的Linux服务器上,但为了省钱,我被要求将它移到另一个Linux服务器上,在那里它与几个PHP应用程序共享一个MySQL数据库。它们都是使用VirtualHosts通过Apache 2提供的。

从现在开始,Tomcat应用程序似乎在很大程度上“消耗”了所有数据库连接,以至于Tomcat应用程序不会响应请求,但是服务器上的PHP应用程序也不会响应请求。Tomcat的重新启动解决了问题。

目前,我的黑客是设置一个cron工作,以弹跳Tomcat每天晚上。这减少了这些事件的数量,但它们仍然偶尔发生。

在这个应用程序中,数据库连接是用server.xml定义的。我尝试过修改maxActive。最初,它被设置为99,但我更改为-1,但它似乎没有帮助的方式或其他方式。

代码语言:javascript
复制
<Resource name="jdbc/theApp" auth="Container"
          type="javax.sql.DataSource"
          username="tomcat"
          password="thePassword"
          driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost:3306/theApp?autoReconnect=true"
          maxActive="-1"
          maxIdle="20"
          maxWait="3000"
          removeAbandoned="true"
          removeAbandonedTimeout="300"
          logAbandoned="true"/> 

问:有人看到这个了吗?如果没有,是否有办法帮助诊断出了什么问题?没有原始的开发团队。

EN

回答 1

Server Fault用户

发布于 2009-12-06 18:27:42

我见过两种不同的应用程序最终争夺mysql连接池资源的情况。大多数情况下,它可以通过mysql调优来解决,但在某些情况下,这是一个必须解决的应用程序的问题。

查看mysql cli显示的内容,PROCESSLIST命令将使您了解连接池正在做什么。我还将查看优秀的mysql调优入门脚本,以了解mysql环境。它在这里被跟踪:http://forge.mysql.com/projects/project.php?id=44

如果您真的只想限制tomcat应用程序可能造成的破坏,则可以始终将容器的最大连接设置为小于mysql的max_connections变量的数字。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/91491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档