tomcat 数据库连接池 查询过于频繁时导致 数据库连接失败!

2025-03-22 21:34:03
推荐回答(3个)
回答1:

数据库连接池的连接被用光了,自然就不能连接了
可以加大最大连接数,还就没了连接用完了要及时关闭,以免占着坑不拉屎,
想那些sql语句复杂的最好简化以减少查询的时间,寻找别的解决方法

回答2:

在tomcat\conf\context.xml写上
maxActive="100" maxIdle="30" maxWait="10000"
username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>

然后项目web.xml

DB Connection
jdbc/TestDB
javax.sql.DataSource
Container

把数据库jar包放在tomcat\lib下
写数据库实现类
public Connection getConn()
{
try
{
Context ic = new InitialContext();
DataSource source = (DataSource)ic.lookup("java:comp/env/jdbc/restrant");
Connection conn = source.getConnection();
return conn;
}
catch(NamingException nex)
{
nex.printStackTrace();
return null;
}
catch(Exception ex)
{
ex.printStackTrace();
return null;
}

}

回答3:

当数据量比较大时,Join的效率比较慢. 可以考虑用视图.
数据库最大连接数为100, 当点击数大时,就超过了maxActive 数了.
将maxActive 设大如300(逐渐设大), 并将 maxIdle 设小(如5 或10)接 )