使用c3p0连接池与p6sp监控mybitis

    xiaoxiao2021-03-25  82

    在使用dbcp与p6sp连接数据库时,会发生关闭的连接错误,查看oracle监控日志却没有操作过去,几经折腾也没有解决,最后使用c3p0与p6sy来做连接,其配置如下

    <bean id="dataSource" class="com.p6spy.engine.spy.P6DataSource"> <constructor-arg index="0"> <!-- c3p0连接池 --> <bean class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${jdbc.driverClassName}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <!--连接池中保留的最大连接数。默认值: 15 --> <property name="maxPoolSize" value="150"/> <!-- 连接池中保留的最小连接数,默认为:3--> <property name="minPoolSize" value="50"/> <!-- 初始化连接池中的连接数,取值应在minPoolSize与maxPoolSize之间,默认为3--> <property name="initialPoolSize" value="2"/> <!--c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数那么 属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试 使用。Default: null --> <property name="automaticTestTable" value="Test" /> <!--如果设为true那么在取得连接的同时将校验连接的有效性。Default: false --> <property name="testConnectionOnCheckin" value="true" /> <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。默认值: 0 --> <property name="maxIdleTime" value="60"/> <!-- 当连接池连接耗尽时,客户端调用getConnection()后等待获取新连接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒。默认: 0 --> <property name="checkoutTimeout" value="3000"/> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。默认值: 3 --> <property name="acquireIncrement" value="10"/> <!--定义在从数据库获取新连接失败后重复尝试的次数。默认值: 30 ;小于等于0表示无限次--> <property name="acquireRetryAttempts" value="0"/> <!--重新尝试的时间间隔,默认为:1000毫秒--> <property name="acquireRetryDelay" value="1000" /> <!--关闭连接时,是否提交未提交的事务,默认为false,即关闭连接,回滚未提交的事务 --> <property name="autoCommitOnClose" value="false"/> <!--如果为false,则获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常,但是数据源仍有效保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。默认: false--> <property name="breakAfterAcquireFailure" value="false"/> <!--每60秒检查所有连接池中的空闲连接。默认值: 0,不检查 --> <property name="idleConnectionTestPeriod" value="60"/> <!--c3p0全局的PreparedStatements缓存的大小。如果maxStatements与maxStatementsPerConnection均为0,则缓存不生效,只要有一个不为0,则语句的缓存就能生效。如果默认值: 0--> <property name="maxStatements" value="100"/> </bean> </constructor-arg> </bean> ps6y的配置在 Spring4.0.2使用p6spy打印mybatis执行SQL这这篇博客里面有具体介绍

    转载请注明原文地址: https://ju.6miu.com/read-40634.html

    最新回复(0)