Code Bye

tomcat连接池

连接池配在tomcat中,每次执行完dao操作后,需要关闭Connection吗?如果不在每次dao操作后关闭Connection,它本次操作的Connection会被连接池回收吗?何时应该关闭Connection


50分
连接池不会关闭,它的机制就是要维持一定数量的缓冲,需要时使用空闲的,不需要时又回归到缓冲内。
引用 1 楼 fangmingshijie 的回复:

连接池不会关闭,它的机制就是要维持一定数量的缓冲,需要时使用空闲的,不需要时又回归到缓冲内。

在每次dao操作结束时需要写connection.close()吗

你的连接池是你自己写的?
引用 3 楼 fangmingshijie 的回复:

你的连接池是你自己写的?

是在tomcat中配的:

<Context ...>
  ...
  <Resource name="jdbc/EmployeeDB"
            auth="Container"
            type="javax.sql.DataSource"
            username="dbusername"
            password="dbpassword"
            driverClassName="org.hsql.jdbcDriver"
            url="jdbc:HypersonicSQL:database"
            maxActive="8"
            maxIdle="4"/>
  ...
</Context>
本帖最后由 fangmingshijie 于 2014-08-07 11:38:04 编辑

你获取一个connection后,使用后要关闭的,关闭后,tomcat会自动帮你创建一个新的连接,保持最小连接数为4。当然不关闭,tomcat自己也会维护的。

引用 5 楼 fangmingshijie 的回复:

你获取一个connection后,使用后要关闭的,关闭后,tomcat会自动帮你创建一个新的连接,保持最小连接数为4。当然不关闭,tomcat自己也会维护的。

我用yjp监测连接数,每次dao操作都有新连接数

最大数是否超过你设置的最大数?

50分
不用手动关闭,因为你已经在tomcat里配置了最大最小连接数,tomcat会替你维护。
引用 7 楼 fangmingshijie 的回复:

最大数是否超过你设置的最大数?

我没看到在哪设置最大连接数

<Resource name="jdbc/TestDB"
          auth="Container"
          type="javax.sql.DataSource"
          factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
          testWhileIdle="true"
          testOnBorrow="true"
          testOnReturn="false"
          validationQuery="SELECT 1"
          validationInterval="30000"
          timeBetweenEvictionRunsMillis="30000"
          maxActive="100"
          minIdle="10"
          maxWait="10000"
          initialSize="10"
          removeAbandonedTimeout="60"
          removeAbandoned="true"
          logAbandoned="true"
          minEvictableIdleTimeMillis="30000"
          jmxEnabled="true"
          jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;
            org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
          username="root"
          password="password"
          driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost:3306/mysql"/>
找到,谢谢两位

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明tomcat连接池