gpt4 book ai didi

java - Tomcat 和 mySQL 配置

转载 作者:行者123 更新时间:2023-11-28 23:44:28 26 4
gpt4 key购买 nike

我使用 Tomcat 和 mySQL 已经有一段时间了,但最近一直在设法最大化我的连接数。我不知道为什么我的代码在完成后打开和关闭连接。例如,这是我的连接和关闭方法:

public void closeConnection(){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

public void connect(){
try {
initCtx = new InitialContext();
} catch (NamingException e) {
e.printStackTrace();
}
try {
envCtx = (Context) initCtx.lookup("java:comp/env");
} catch (NamingException e) {
e.printStackTrace();
}
try {
ds = (DataSource) envCtx.lookup("jdbc/TestDB");
} catch (NamingException e) {
e.printStackTrace();
}
}

这是执行通用语句的基本方法:

public void excuteStatement(String query){

connect();

try {
con = ds.getConnection();
con.createStatement().executeUpdate(query);
} catch (Exception ex ){
} finally {
if (con != null)
closeConnection();
}
}

是否有任何理由让这种代码导致连接保持打开状态?我得到了我需要的所有数据,99% 的时间一切正常。

这是我在 Tomcat context.xml 中的配置:

 <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="myUserName" password="myPass" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://xxx.xxx.xxx.xxx:0000/myUserName"/>

此时此刻我被锁定了,因为我有最大的连接数。我应该减少等待时间以避免这种情况吗?

关于我的代码,我应该说一件事,它通常会在大循环中触发许多多个语句。我认为也许这种快速打开和关闭可能是问题所在。由于我的 Tomcat servlet 一直在运行,它是否应该只打开一次连接并保持打开状态并进行检查以确保它仍然处于 Activity 状态而不是总是打开连接然后关闭它?

感谢您对此提出的所有建议。

最佳答案

是的,减少您的等待时间,这太长了。在 mysql 中,您可以增加最大连接数的值,将其增加到您的盒子可以处理的合理大小..

关于java - Tomcat 和 mySQL 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15939638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com