连接池配在tomcat中,每次执行完dao操作后,需要关闭Connection吗?如果不在每次dao操作后关闭Connection,它本次操作的Connection会被连接池回收吗?何时应该关闭Connection |
|
50分 |
连接池不会关闭,它的机制就是要维持一定数量的缓冲,需要时使用空闲的,不需要时又回归到缓冲内。
|
在每次dao操作结束时需要写connection.close()吗 |
|
你的连接池是你自己写的?
|
|
是在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> |
|
你获取一个connection后,使用后要关闭的,关闭后,tomcat会自动帮你创建一个新的连接,保持最小连接数为4。当然不关闭,tomcat自己也会维护的。 |
|
我用yjp监测连接数,每次dao操作都有新连接数 |
|
最大数是否超过你设置的最大数?
|
|
50分 |
不用手动关闭,因为你已经在tomcat里配置了最大最小连接数,tomcat会替你维护。
|
我没看到在哪设置最大连接数 <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"/> |
|
找到,谢谢两位
|