我讨厌提出一个在网上被广泛询问的问题,但我似乎无法解决它。MySql连接太多
我刚开始一个项目,经过一个月的测试,我遇到了“连接太多”的错误。我看着它,并通过增加max_connections来“解决”它。然后这工作。
从那时起,越来越多的人开始使用它,并且它再次出现。当我是网站上的唯一用户时,我输入“show processlist”,然后出现大约50个仍处于打开状态的连接(在命令中说“睡眠”)。现在,我不知道足以推测为什么这些是开放的,但在我的代码中,我反复检查并打开每个连接,我关闭。
即。
public int getSiteIdFromName(String name, String company)throws DataAccessException,java.sql.SQLException{
Connection conn = this.getSession().connection();
Statement smt = conn.createStatement();
ResultSet rs=null;
String query="SELECT id FROM site WHERE name='"+name+"' and company_id='"+company+"'";
rs=smt.executeQuery(query);
rs.next();
int id=rs.getInt("id");
rs.close();
smt.close();
conn.close();
return id;
}
每次我在网站上做其他事情时,都会打开另一个连接负载而不是关闭。 我的代码有问题吗?如果不是,可能是什么问题?
什么是this.getSession().connection()在做什么? – 2010-06-18 12:11:09
而且这是你的应用程序中您打开连接的唯一地方吗? – 2010-06-18 12:12:35
您是否在某处记录所有异常? – 2010-06-18 12:13:06