spring对oracle.jdbc.pool.OracleDataSource连接不关闭的探讨
2007-12-25 18:06
417 查看
近日,为了提高程序执行效率,使用存储过程将批量记录写入数据库。
在代码实现中,遇到几个问题:
1 将多条记录数据,封装成Oracle所需的ARRAY类型时,用到Connection。我所使用的数据连接,是由Spring配置org.apache.commons.dbcp.BasicDataSource生成连接的。从这一数据源中,从JdbcDaoSupport得到连接使用时,报对象造型错误。经跟踪,发现JdbcDaoSupport中得到的Connection,并不是Oracle数据库的连接类型。至此改用oracle.jdbc.pool.OracleDataSource提供数据源。
2 改用oracle.jdbc.pool.OracleDataSource后,存储过程调用正常。但在随后的压力测试中,发现频繁获取连接时,间断出现得不到连接的报错信息。经查找,问题出在Spring对oracle.jdbc.pool.OracleDataSource数据源的维护上,Spring使用完这个数据源提供的数据连接后并不进行关闭操作,改用org.apache.commons.dbcp.BasicDataSource没有这个问题。
所以,oracle.jdbc.pool.OracleDataSource配置的数据连接源,需要显示的关闭连接。
在代码实现中,遇到几个问题:
1 将多条记录数据,封装成Oracle所需的ARRAY类型时,用到Connection。我所使用的数据连接,是由Spring配置org.apache.commons.dbcp.BasicDataSource生成连接的。从这一数据源中,从JdbcDaoSupport得到连接使用时,报对象造型错误。经跟踪,发现JdbcDaoSupport中得到的Connection,并不是Oracle数据库的连接类型。至此改用oracle.jdbc.pool.OracleDataSource提供数据源。
2 改用oracle.jdbc.pool.OracleDataSource后,存储过程调用正常。但在随后的压力测试中,发现频繁获取连接时,间断出现得不到连接的报错信息。经查找,问题出在Spring对oracle.jdbc.pool.OracleDataSource数据源的维护上,Spring使用完这个数据源提供的数据连接后并不进行关闭操作,改用org.apache.commons.dbcp.BasicDataSource没有这个问题。
所以,oracle.jdbc.pool.OracleDataSource配置的数据连接源,需要显示的关闭连接。
相关文章推荐
- java.lang.IllegalAccessError: tried to access method oracle.jdbc.pool.OracleDataSource.getPassword()
- 使用java datasource 进行 oracle jdbc 连接
- 使用java datasource 进行 oracle jdbc 连接
- jdbc使用DataSource连接mysql,postgresql,oracle的代码
- jdbc使用DataSource连接mysql,postgresql,oracle的代码
- spring配置jdbc连接oracle,mysql,sqlserver
- 简单的用jdbc使spring boot项目同时连接Oracle和Mysql数据源
- oracle的varchar2(4000)通过jdbc的thin驱动连接为什么只可以存666个汉字 .
- jdbc 连接Oracle informix Mysql
- JDBC连接ORACLE的三种URL格式
- spring_使用占位符连接数据库_PropertyPlaceholderConfigurer_DataSource配置创建获取
- spring配置oracle多个用户的datasource
- 通过JDBC连接Oracle的十大灵活技术
- JDBC连接数据库的例子(oracle)
- Spring tomcat jdbc pool mybatis 集成配置
- jdbc数据库连接实例(oracle)
- 在 Oracle JDBC 访问中加入一些 Spring 特性
- jdbc关闭连接顺序
- Oracle 12c JDBC 连接
- JDBC(与Oracle的连接)