数据库连接池中总会保持有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这种问题。
分享到:
相关推荐
**配置DBCP数据源步骤** 1. **添加依赖**:要使用DBCP,首先需要在项目的类路径下包含两个关键的jar包,即`commons-dbcp-1.4.jar`和`commons-pool-1.6.jar`。这两个jar包提供了DBCP所需的全部功能。 2. **配置...
这可能意味着DBCP数据源的使用示例或者结合Spring框架的配置。Spring是一个流行的Java应用框架,它支持多种数据源管理,包括DBCP。通过Spring的`DataSource` Bean配置,可以方便地集成DBCP,实现数据库连接的池化...
2. **配置数据源**:在Spring的配置文件(如`applicationContext.xml`)中,定义一个名为`dataSource`的bean,使用DBCP的数据源实现。例如: ```xml <bean id="dataSource" class="org.apache.commons.dbcp....
**JDBC数据源连接池配置与使用详解** 在Java Web应用中,数据库连接的管理是至关重要的。为了提高性能和资源利用率,开发人员通常会使用数据源连接池。本篇文章将详细讲解JDBC数据源连接池的配置和使用,以帮助你更...
综上所述,DBCP数据源是Java应用程序中管理和复用数据库连接的有效工具,它的正确配置和使用对于提升应用性能至关重要。同时,了解并比较其他连接池方案,可以帮助选择最适合特定项目需求的解决方案。
在本配置中,我们将探讨如何将Spring MVC与Apache DBCP数据源和JdbcTemplate结合使用,以实现高效、安全的数据库操作。 Apache DBCP(Database Connection Pool)是一个连接池组件,它允许应用在多个用户之间共享...
DBCP的数据源配置主要包括以下几个关键部分: 1. **依赖库**:`commons-dbcp-1.4.jar` 是DBCP的核心库,提供了数据库连接池的实现。而 `commons-pool-1.6.jar` 是Apache Commons Pool库,它是DBCP的依赖,用于对象...
总的来说,DBCP数据源的实现为Java应用提供了一种高效、可配置的数据库连接管理方案,降低了数据库操作的资源消耗,提高了系统性能。在实际应用中,根据项目的规模和性能需求,合理配置和使用DBCP是非常重要的。
DBCP(Database Connection Pool)是Apache软件基金会的Commons项目中的一个组件,全称为"Jakarta Commons DBCP"。它提供了一个数据库连接池服务,允许应用程序管理数据库连接的生命周期,提高数据库操作的效率和...
在Spring框架中,数据库连接管理是一项关键任务,而DBCP(Database Connection Pool)数据源是常用的连接池...在实际开发中,还需根据项目所使用的数据库选择对应的JDBC驱动,并根据应用需求调整DBCP数据源的配置参数。
在配置完成后,通过`dataSource.getConnection()`方法即可获取到数据库连接,使用完毕后,应调用`Connection.close()`方法关闭连接,实际上连接会返回到连接池而不是真正关闭,以便后续使用。 DBCP数据源的优点包括...
DBCP(Jakarta Commons DBCP)数据源是Apache软件基金会的一个开源项目,它提供了一个数据库连接池服务。在Java应用程序中,特别是那些基于Servlet容器(如Tomcat)的应用,DBCP是一个常用的数据库连接管理工具。它...
# Oracle数据源配置 jdbc.driver=oracle.jdbc.OracleDriver jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:dev jdbc.username=ling jdbc.password=229 # MySQL数据源配置 jdbc-mysql.driver=com.mysql.jdbc.Driver ...
5. **配置调整**:根据实际应用的并发量和资源需求,可以调整DBCP的数据源配置,如最大活动连接数、最大空闲连接数等,以优化性能和资源利用。 6. **异常处理**:在使用过程中,需要妥善处理可能出现的数据库连接...
在DBCP的数据源配置中,有几个重要的参数需要理解: 1. **removeAbandoned**: 当设置为`true`时,DBCP会监控并回收那些长时间未被使用的连接。默认情况下,这个特性是关闭的。当一个连接超过`...
Java Web JDBC 数据源配置 Java Web JDBC 数据源是指在 Java Web 应用程序中使用 JDBC(Java Database Connectivity)技术来连接数据库的方式。在这个配置文件中,我们可以看到的是在 Tomcat 中的 conf 文件下,...
总结,配置Tomcat 6.0的数据源(DBCP)和JNDI使用,主要是通过修改服务器和应用的配置文件,然后在代码中利用JNDI查找机制获取数据源,实现数据库连接的高效管理。通过实践和理解这些步骤,可以提升你的Java Web开发...
### Spring 数据源配置详解 #### 一、Spring与数据源简介 在Java企业级应用开发中,数据库操作是必不可少的一部分。Spring框架作为一种流行的轻量级Java应用开发框架,提供了强大的数据库访问支持,其中包括对数据...