0
嗨,我们使用的是Tomcat 6和context.xml的是像下面Tomcat的数据库连接泄漏
<Context>
<Resource defaultAutoCommit="false" defaultReadOnly="false"
driverClassName="oracle.jdbc.driver.OracleDriver"
fairQueue="false" initialSize="${DBPool.initialPoolSize}"
jdbcInterceptors="ConnectionState;StatementFinalizer"
jmxEnabled="true" logAbandoned="false" maxActive="${DBPool.maxPoolSize}"
maxIdle="30" maxWait="30000"
minEvictableIdleTimeMillis="5000" minIdle="${DBPool.minPoolSize}"
name="jdbc/BankDBPool" password="${DBPool.bankPassword}"
removeAbandoned="true" removeAbandonedTimeout="60"
testOnBorrow="false" testOnReturn="true"
testWhileIdle="false" timeBetweenEvictionRunsMillis="5000"
type="javax.sql.DataSource"
url="${DBPool.jdbcUrl}"
factory="uk.co.xxxx.encryption.dbcp.DecryptingBasicDataSourceFactory"
useEquals="false" username="${DBPool.bankUser}" validationInterval="30000" validationQuery="select 1 from dual" />
</Context>
DBPool.maxPoolSize=400
DBPool.minPoolSize=15
DBPool.initialPoolSize=15
的问题是我们要设置maxPoolSize非常高,因为它是给连接不可用异常。 数据库监视器工具正在显示连接闲置,但似乎无法重用。这个应用程序的流量非常低。每天大约10000次点击。
我们正试图找出可能是什么问题。
我所有的服务方法都标明 @Transactional(传播= Propagation.REQUIRED,只读= true或false)
DecryptingBasicDataSourceFactory只做返回数据源的工作。 我们使用spring和hibernate。
你能发布'连接不可用异常'的堆栈跟踪吗? –