`
wb284551926
  • 浏览: 556678 次
文章分类
社区版块
存档分类
最新评论

DBCP数据源配置,数据源时间不使用出现Could not close JDBC Connection(转载)

阅读更多

数据库连接池中总会保持有minIdle这个数目的连接,这里的连接如果长时间不使用就会有可能断开。 

长时间不使用的数据库连接断开的可能有: 

1.数据库本身设有这个,自动断开长时间不使用的连接。 

2.网络问题,在长时间连接的过程中出现过网络问题。 

3.防火墙问题,防火墙可能会关闭长时间连接,但没有数据流的连接。 

出现的异常有:Could not close JDBC Connection,java.sql.SQLException: Already closed.,java.sql.SQLException: 关闭的连接, 

出现这种断开的解决可以在数据源里设置一个testOnBorrow为true.在设置这个参数时还要设置validationQuery这个为一个最少返回一条数据的select语句。 

org.apache.commons.dbcp.BasicDataSource数据源,非常常用。最近在使用时出现点问题。 

DBCP数据源配置好多参数都不是很复杂, 

参数 默认值 描述 
initialSize 0 初始化连接:连接池启动时创建的初始化连接数量,1.2版本后支持 
maxActive 8 最大活动连接:连接池在同一时间能够分配的最大活动连接的数量, 如果设置为非正数则表示不限制 
maxIdle 8 最大空闲连接:连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,如果设置为负数表示不限制 
minIdle 0 最小空闲连接:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为0则不创建 
maxWait 无限 最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常,如果设置为-1表示无限等待 

还有一个参数说明一下:testOnBorrow true 指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个. 

<property name="testOnBorrow"> 
    <value>trues</value> 
   </property> 

这个参数设为true时,还有一个参数的设置:validationQuery:SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.如果指定,则查询必须是一个SQL SELECT并且必须返回至少一行记录 

如果testOnBorrow为true而validationQuery没有设置,或为空,或你给的不是一个select语句且没有数据返回。testOnBorrow也是白设。validationQuery这个的SQL语句一般查询dual表.常用的有SELECT 1 FROM DUAL。最也不要使用SELECT sysdate FROM DUAL.这个语句的效率没有前面说的一个好。WebLogic 就是使用的SELECT 1 FROM DUAL这个sql语句。 

<property name="testOnBorrow"> 
    <value>true</value> 
   </property> 
   <property name="validationQuery"> 
    <value>SELECT 1 FROM DUAL</value> 
   </property> 

要正式系统中使用的数据源最好是用上这个testOnBorrow。这样可以保证使用的每个数据源都不会出现长时间没有使用中断后。出现Could not close JDBC Connection这种问题。 

 

原文地址:http://sczdd.iteye.com/blog/781221

分享到:
评论

相关推荐

    Spring_c3p0与dbcp数据源_的配置

    此外,DBCP数据源还提供了一些其他可选配置,如`maxIdle`(最大空闲连接数)、`maxWait`(等待连接的最大时间)等。 在Spring容器中,为了确保在应用关闭时正确关闭数据源,需要在`&lt;bean&gt;`标签中添加`destroy-...

    配置DBCP数据源的Jar包

    **配置DBCP数据源步骤** 1. **添加依赖**:要使用DBCP,首先需要在项目的类路径下包含两个关键的jar包,即`commons-dbcp-1.4.jar`和`commons-pool-1.6.jar`。这两个jar包提供了DBCP所需的全部功能。 2. **配置...

    DBCP数据源jar包.rar

    这可能意味着DBCP数据源的使用示例或者结合Spring框架的配置。Spring是一个流行的Java应用框架,它支持多种数据源管理,包括DBCP。通过Spring的`DataSource` Bean配置,可以方便地集成DBCP,实现数据库连接的池化...

    dbcp数据源配置JAR包

    2. **配置数据源**:在Spring的配置文件(如`applicationContext.xml`)中,定义一个名为`dataSource`的bean,使用DBCP的数据源实现。例如: ```xml &lt;bean id="dataSource" class="org.apache.commons.dbcp....

    DBCP数据源JAR包

    综上所述,DBCP数据源是Java应用程序中管理和复用数据库连接的有效工具,它的正确配置和使用对于提升应用性能至关重要。同时,了解并比较其他连接池方案,可以帮助选择最适合特定项目需求的解决方案。

    spring mvc配置 + dbcp数据源+jdbcTemplate

    在本配置中,我们将探讨如何将Spring MVC与Apache DBCP数据源和JdbcTemplate结合使用,以实现高效、安全的数据库操作。 Apache DBCP(Database Connection Pool)是一个连接池组件,它允许应用在多个用户之间共享...

    DBCP数据源需要的Jar包

    2. **配置参数**:在配置DBCP数据源时,需要设置一系列参数来控制连接池的行为,例如: - `driverClassName`:指定数据库驱动类名,例如"com.mysql.jdbc.Driver"对于MySQL。 - `url`:数据库连接URL,包括数据库...

    JDBC数据源连接池的配置和使用示例

    **JDBC数据源连接池配置与使用详解** 在Java Web应用中,数据库连接的管理是至关重要的。为了提高性能和资源利用率,开发人员通常会使用数据源连接池。本篇文章将详细讲解JDBC数据源连接池的配置和使用,以帮助你更...

    DBCP数据源实现.rar

    总的来说,DBCP数据源的实现为Java应用提供了一种高效、可配置的数据库连接管理方案,降低了数据库操作的资源消耗,提高了系统性能。在实际应用中,根据项目的规模和性能需求,合理配置和使用DBCP是非常重要的。

    dbcp数据源jar包

    DBCP(Database Connection Pool)是Apache软件基金会的Commons项目中的一个组件,全称为"Jakarta Commons DBCP"。它提供了一个数据库连接池服务,允许应用程序管理数据库连接的生命周期,提高数据库操作的效率和...

    dbcp数据源代码所需要的jar包

    在Spring框架中,数据库连接管理是一项关键任务,而DBCP(Database Connection Pool)数据源是常用的连接池...在实际开发中,还需根据项目所使用的数据库选择对应的JDBC驱动,并根据应用需求调整DBCP数据源的配置参数。

    DBCP数据源必需jar包

    在配置完成后,通过`dataSource.getConnection()`方法即可获取到数据库连接,使用完毕后,应调用`Connection.close()`方法关闭连接,实际上连接会返回到连接池而不是真正关闭,以便后续使用。 DBCP数据源的优点包括...

    DBCP 数据源jar包

    DBCP(Jakarta Commons DBCP)数据源是Apache软件基金会的一个开源项目,它提供了一个数据库连接池服务。在Java应用程序中,特别是那些基于Servlet容器(如Tomcat)的应用,DBCP是一个常用的数据库连接管理工具。它...

    JavaEE 使用Tomcat的自带DBCP管理数据源案例

    本案例主要讲解如何使用Tomcat服务器内置的DBCP(Database Connection Pool)数据源来高效、安全地管理数据库连接。DBCP是一个开源的数据库连接池实现,它允许应用程序在不创建新的数据库连接的情况下多次重用已存在...

    spring mvc 配置多数据源

    本文将详细介绍如何在Spring MVC项目中配置并使用多数据源。 #### 1. 概述 在Spring MVC中配置多数据源通常涉及到以下几个步骤: - 在`application.properties`或`application.yml`文件中配置不同的数据源属性。 - ...

    dbcp数据连接池配置

    在使用DBCP时,正确配置数据源类是非常关键的,这直接影响到数据库连接的效率和系统的稳定性。 在DBCP的数据源配置中,有几个重要的参数需要理解: 1. **removeAbandoned**: 当设置为`true`时,DBCP会监控并回收...

    Tomcat 6.0配置数据源(DBCP)和JNDI使用

    总结,配置Tomcat 6.0的数据源(DBCP)和JNDI使用,主要是通过修改服务器和应用的配置文件,然后在代码中利用JNDI查找机制获取数据源,实现数据库连接的高效管理。通过实践和理解这些步骤,可以提升你的Java Web开发...

    spring数据源配置

    Spring框架支持多种数据源的配置方式,包括但不限于基于XML的配置、基于注解的配置以及基于Java配置的方式。本文主要关注基于XML的配置方法。 #### 三、XML配置详解 ##### 1. 数据源配置 数据源的配置通常涉及到...

    java数据源配置

    除了基本配置,我们还可以设置更多的数据源属性来优化连接池的行为,比如最小空闲连接数、最大连接数、超时时间、验证查询等。这些属性可以帮助我们在不同的应用场景中调整资源使用,避免资源浪费和性能瓶颈。 在...

    dbcp数据源.rar

    【dbcp数据源详解】 Apache DBCP (Database Connection Pool) 是一个开源的数据库连接池组件,它在Java应用中广泛使用,特别是在基于Spring框架的项目中,为应用程序提供高效、可靠的数据库连接管理。DBCP是Apache ...

Global site tag (gtag.js) - Google Analytics