问:与数据库的活动没有结束的物理连接的地块即使连接池。有人能告诉我为什么这样吗?Oracle数据源连接池不工作使用Spring和JdbcTemplate的
我使用oracle.jdbc.pool.OracleDataSource
配置的连接池设置。但是看起来物理连接在使用后没有关闭。 我想,既然是连接池,连接将从池中被重用,那么这么多的物理连接将无法进行, 但那不是什么现在发生的事情!
有从应用[不从PLSQL显影剂或任何这样的客户端工具], 由于它而试图做数据库写操作序幕TNS错误, 其中在数据库中生成100+活性的物理连接因为即使有大量的活动连接,读取操作也可以。
这里是Spring配置,
<bean id="oracleDataSource" class="oracle.jdbc.pool.OracleDataSource" destroy-method="close"
p:URL="${url}"
p:user="${username}"
p:password="${password}"
p:connectionCachingEnabled="true">
<property name="connectionProperties">
<props merge="default">
<prop key="AutoCommit">false</prop>
</props>
</property>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"
p:dataSource-ref="oracleDataSource" />
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
p:dataSource-ref="oracleDataSource">
</bean>
返回的100多个活动连接的SQL是,
select username, terminal,schemaname, osuser,program from v$session where username = 'grduser'
感谢您提及默认值+1。让我详细了解它并缓存 – spiderman 2015-02-12 03:13:44
我已经发布了详细的解决方案 – spiderman 2015-02-18 16:44:11