`

BasicDataSource设置connection自动重连

    博客分类:
  • DBCP
阅读更多

近期项目使用SpringMVC,并配置DBCP BasicDataSource作为数据源。因特殊需求,web session的有效时间需要设置为很长,导致有可能DB connection会被mysql回收,所以需要配置DBCP可以在执行sql前检查connection的有效性,如已失效,希望能获得一个新的有效connection(自动重连)。

 

已有配置(最简化):

<!-- DataSource -->

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close">

<property name="driverClassName" value="com.mysql.jdbc.Driver" />

<property name="url" value="${jdbc.url}" />

<property name="username" value="${jdbc.username}" />

<property name="password" value="${jdbc.password}" />

</bean>

 

只需添加如下一个新的属性即可,

<property name= "validationQuery" value="select 1" />  <!-- validate the connection before executing query, if it's invalid, the connect will be rebuild by DBCP -->

 

具体可参考Apache commons DBCP 配置 http://commons.apache.org/proper/commons-dbcp/configuration.html

分享到:
评论

相关推荐

    数据源--.dbcp.BasicDataSource使用.pdf

    设置了removeAbandoned=true时,系统会在removeAbandonedTimeout秒后回收无效的Connection。 4. maxWait:超时等待时间,以毫秒为单位。设置了maxWait时,客户端会等待maxWait毫秒后激发回收事件。 配置示例 以下...

    java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource解决方案

    Apache Commons DBCP(Database Connection Pool)是一个开源的数据库连接池组件,它提供了数据源对象,方便管理和复用数据库连接,从而提高应用性能。 要解决这个问题,你需要确保你的Java项目正确地包含了Apache ...

    commons-dbcp

    3. **事务支持**:`BasicDataSource`支持JDBC的事务管理,可以设置自动提交的开关,以及控制事务的隔离级别。 4. **连接池的初始化**:你可以预先配置一定数量的连接在启动时就存在于池中,这样可以减少初次请求...

    java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource

    Apache Commons DBCP(Database Connection Pool)是一个开源的、基于Apache Commons项目的数据源池组件。它提供了一个实现JDBC(Java Database Connectivity)规范的连接池,可以显著提高数据库操作的性能,因为...

    DBCP( Database Connection Pool )数据库连接池

    - **defaultAutoCommit**:连接池创建的连接的默认自动提交状态,默认为`true`。 - **defaultReadOnly**:连接池创建的连接的默认只读状态,默认未设置。 - **defaultTransactionIsolation**:连接池创建的连接的...

    Java jdbc数据库连接池总结2

    4. **故障恢复**:连接池可以检测连接状态,自动重连或回收损坏的连接。 5. **事务支持**:提供事务管理,简化应用程序的事务处理逻辑。 ### 实战应用 在实际开发中,使用数据库连接池通常需要以下步骤: 1. ...

    DBCP连接池帮助文档

    2. 创建数据源实例:在Java代码或配置文件中创建BasicDataSource实例,并设置相关属性。 ```java BasicDataSource ds = new BasicDataSource(); ds.setUrl("jdbc:mysql://localhost:3306/test"); ds.setUsername(...

    jdbc与dbcp数据库连接

    在这个例子中,我们首先创建了一个BasicDataSource实例,并设置了数据库连接的相关属性。然后,我们通过调用`getConnection()`方法获取连接,执行SQL查询并处理结果。注意,我们使用了try-with-resources语句,确保...

    DBCP连接池的jar包

    DBCP连接池还有一些高级特性,如连接验证、自动重连、连接健康检查等,可以根据应用需求进行配置。同时,DBCP虽然历史悠久且稳定,但随着技术的发展,已经有一些更现代、功能更强大的数据库连接池替代品,如HikariCP...

    JDBC事务管理(添加dbcp和c3p0测试.zip

    C3P0是另一个流行的数据库连接池实现,提供了更高级的功能,如连接测试和自动重连。配置C3P0的过程类似,但使用的是`ComboPooledDataSource`类: ```java ComboPooledDataSource cpds = new ComboPooledDataSource...

    JDBC从入门到放弃-数据库连接使用配置文件方式连接数据库

    - 配置连接池通常涉及设置最大连接数、最小连接数、超时时间等参数,以平衡资源使用和响应速度。 6. **事务管理** - JDBC提供了对事务的API,如`Connection.setAutoCommit(false)`开启手动事务,`Connection....

    commons-dbcp2

    2. **自动重连**:如果数据库连接由于某种原因断开,DBCP2可以尝试自动重新建立连接,确保应用程序的连续性。 3. **事务支持**:DBCP2支持JDBC事务管理,可以配置为自动提交或手动提交事务,满足不同场景下的需求。...

    模拟的Java连接池

    DBCP(BasicDataSource)是一个基础的连接池实现,而C3P0则提供了一些额外的功能,如自动测试连接、自动重连等。 在实际项目中,根据系统的负载、并发量以及数据库的特性选择合适的连接池实现,并进行合理配置,...

    (品管工具QC七大手法)BSS_QC_数据库连接和事务管理专题.pdf

    例如,在Hibernate中,通过getSession().connection()可以获取连接,但不能直接关闭,因为连接由Session管理,会在事务提交或回滚时自动释放。而在JdbcTemplate中,通过jdbc.getDataSource().getConnection()获取的...

    DBCP连接数据库的jar包

    3. **获取和释放连接**:使用`BasicDataSource`提供的`getConnection()`方法获取数据库连接,用完后通过`Connection.close()`返回给连接池,而不是关闭连接。这一步骤非常重要,因为它确保连接能够被其他线程重用。 ...

    java连接池实例[参考].pdf

    `ConnectionPool`类提供了一些方法来获取和设置这些属性,如`getInitialConnections()`、`setInitialConnections()`等,这使得在运行时可以动态调整连接池的配置。 此外,类中可能还包含以下功能: - `get...

    Apache-DBCP数据库连接池

    3. **自动管理连接:** 连接池会自动检测并处理坏掉的连接,保证应用的稳定运行。 4. **配置灵活:** 提供多种配置选项,可以根据实际需求调整连接池的行为。 **与其它数据库连接池的对比:** DBCP虽然简单易用,但...

    jdbc连接池dbcp工具包

    3. 获取和释放连接:通过`BasicDataSource`提供的`getConnection()`方法获取数据库连接,使用完毕后调用`close()`方法归还连接,但实际并不会关闭,而是返回给连接池。 4. 销毁数据源:在应用程序关闭时,应调用`...

Global site tag (gtag.js) - Google Analytics