C3P0配置属性详解

应该是C3P0 吧。

我用的是xml方式的配置

<?xml version="1.0" encoding="UTF-8"?>

<c3p0-config>
<default-config>
<property name="checkoutTimeout">30000</property>
<property name="idleConnectionTestPeriod">30</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">200</property>
<user-overrides user="test-user">
<property name="maxPoolSize">10</property>
<property name="minPoolSize">1</property>
<property name="maxStatements">0</property>
</user-overrides>
</default-config><!-- This app is massive! -->
<named-config name="fccscom">
<property name="jdbcUrl">jdbc:jtds:sqlserver://localhost:1433/red</property>  
<property name="driverClass">net.sourceforge.jtds.jdbc.Driver</property>  
<property name="user">sa</property>  
<property name="password">sa</property>  


<!-- he's important, but there's only one of him -->
<user-overrides user="master-of-the-universe">
<property name="acquireIncrement">1</property>
<property name="initialPoolSize">1</property>
<property name="minPoolSize">1</property>
<property name="maxPoolSize">5</property>
<property name="maxStatementsPerConnection">50</property>
</user-overrides>

<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->  
  <property name="acquireIncrement">50</property>  
    
  <!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->  
  <property name="acquireRetryAttempts">30</property>  
    
  <!--两次连接中间隔时间,单位毫秒。Default: 1000 -->  
  <property name="acquireRetryDelay">1000</property>  
    
  <!--连接关闭时默认将所有未提交的操作回滚。Default: false -->  
  <property name="autoCommitOnClose">false</property>  
    
  <!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效   
  保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试   
  获取连接失败后该数据源将申明已断开并永久关闭。Default: false-->  
  <property name="breakAfterAcquireFailure">false</property>  
    
  <!--当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出   
  SQLException,如设为0则无限期等待。单位毫秒。Default: 0 -->  
  <property name="checkoutTimeout">0</property>  
    
  <!--每60秒检查所有连接池中的空闲连接。Default: 0 -->  
  <property name="idleConnectionTestPeriod">60</property>  
  
  <!--初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->  
  <property name="initialPoolSize">10</property>  
  
  <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->  
  <property name="maxIdleTime">40</property>  
  
  <!--连接池中保留的最大连接数。Default: 15 -->  
  <property name="maxPoolSize">200</property>  
  
  <!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements   
  属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。   
  如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0-->  
  <property name="maxStatements">100</property>  

  <!--c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能   
  通过多线程实现多个操作同时被执行。Default: 3-->  
  <property name="numHelperThreads">3</property>  

  <!--定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个一显著提高测试速度。注意:   
  测试的表必须在初始数据源的时候就存在。Default: null-->  
  <property name="preferredTestQuery">select top 1 AREAID from AREA where PASS=1</property>  
  
  <!--用户修改系统配置参数执行前最多等待300秒。Default: 300 -->  
  <property name="propertyCycle">
  300
  </property>  
    
  <!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的   
  时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable   
等方法来提升连接测试的性能。Default: false -->  
  <property name="testConnectionOnCheckout">
  true
  </property>  

<!--如果设为true那么在取得连接的同时将校验连接的有效性。Default: false -->  
  <property name="testConnectionOnCheckin">
  true
  </property>  

<property name="minPoolSize">
5
</property>
</named-config>
</c3p0-config>

posted @ 2012-05-29 16:55  古来征战几人回  阅读(793)  评论(0编辑  收藏  举报