【发布时间】:2015-06-27 10:18:32
【问题描述】:
我正在使用 JDBC 连接池与 mysql 服务器建立连接。
下面是我的代码sn-p
try {
InitialContext initialContext = new InitialContext();
Context context = (Context) initialContext.lookup("java:comp/env");
DataSource ds = (DataSource) context.lookup("connpool");
Connection conn = ds.getConnection();
//some query is executed
}
catch(SQLException ex)
{ }
finally { conn.close(); }
我的疑惑:
我怀疑我什至正在 MySQL 中关闭连接(conn.close()) show processlist 命令它显示连接。
如果我向 servlet 发送更多请求,show processlist 中的连接数也会增加,
此连接何时关闭。
为什么我害怕意味着它达到了最大连接数,它会显示错误。
我的连接池配置是:
<Resource name="connpool" auth="Container"
type="javax.sql.DataSource"
maxActive="1" maxIdle="0"
maxWait="-1"
username="xxxxx"
password="xxxxx"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/govsocial"/>
【问题讨论】:
-
检查数据源的配置。可能它会打开一个新连接,直到达到允许的最大连接数,然后它会开始重用它们。
-
当您发出
conn.close时,连接池可能不会真正关闭物理 数据库连接,而是将其释放以供另一个getConnection使用。 -
@LuiggiMendoza 我已设置 maxActive="1" maxIdle="0" maxWait="-1"
-
你能发布你的连接池的完整配置吗?你用的是什么库?
-
@JohnR 我已经在帖子中添加了资源配置。
标签: java mysql servlets tomcat7 connection-pooling