夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
          hibernate開發組推薦c3p0,spring開發組推薦dbcp,但是dbcp連接池有weblogic連接池同樣的問題,就是強行關閉連接或數據庫重啟后,無法 reconnect ,告訴連接被重置,這個設置可以解決。hibernate in action推薦c3p0和proxool。

          我推薦proxool,因為他不但可以監控后臺。還可以有效的釋放連接。在connection close時,也就是歸還connection,
          關閉所有的statement,并且判斷是否autocommit,如果不行,就rollback,并且設置true,
          可以參考proxool的org.logicalcobwebs.proxool.ConnectionResetter類
          connection pool把connection reset置回initial state。
          dbcp的配置
          <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
          <property name="driverClassName" value="${db.driverClassName}"/>
          <property name="url" value="${db.url}"/>
          <property name="username" value="${db.username}"/>
          <property name="password" value="${db.password}"/>

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

          c3p0的配置, 注意是''driverClass' , 'jdbcUrl', 'user' , 'password'

          <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
                  <property name="driverClass">
                  <value>net.sourceforge.jtds.jdbc.Driver</value>
                  </property>
                  <property name="jdbcUrl">

          <value>jdbc:jtds:sqlserver://localhost:1433/hua</value>
                  </property>
                  <property name="user">
                  <value>sa</value>
                  </property>
                  <property name="password">
                  <value>hua</value>
                  </property>
                  <property name="minPoolSize">
                  <value>15</value>
                  </property>
                  <property name="acquireIncrement">
                  <value>5</value>
                  </property>
                  <property name="maxPoolSize">
                  <value>25</value>
                  </property>
                  </bean>

          <bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
                  destroy-method="close">
                  <property name="driverClass">
                      <value>${db.driverClass}</value>
                  </property>
                  <property name="jdbcUrl">
                      <value>${db.url}</value>
                  </property>
                   <!--
                  <property name="user">
                      <value>${db.user}</value>
                  </property>
                  <property name="password">
                      <value>${db.pass}</value>
                  </property>
                  -->
                  <property name="properties">
                      <props>
                          <prop key="c3p0.acquire_increment">5</prop>
                          <prop key="c3p0.idle_test_period">100</prop>
                          <prop key="c3p0.max_size">100</prop>
                          <prop key="c3p0.max_statements">0</prop>
                          <prop key="c3p0.min_size">10</prop>
                          <prop key="user">${db.user}</prop>
                          <prop key="password">${db.pass}</prop>
                      </props>
                  </property>
              </bean>
          xapool的配置
           <bean id="dataSource" class="org.enhydra.jdbc.pool.StandardPoolDataSource" destroy-method="stopPool">
              <constructor-arg index="0">
                <bean class="org.enhydra.jdbc.standard.StandardConnectionPoolDataSource">
                  <property name="driverName"><value>com.mysql.jdbc.Driver</value></property>
                  <property name="url"><value>jdbc:mysql://localhost/dbname</value></property>
                </bean>
              </constructor-arg>
              <property name="user"><value>root</value></property>
              <property name="password"><value>mypass</value></property>
              <property name="minSize"><value>1</value></property>
              <property name="maxSize"><value>5</value></property>
              <property name="jdbcTestStmt"><value>select 1</value></property>
            </bean>
          c-jdbc的配置
          <bean id="dataSource" class="org.objectweb.cjdbc.driver.DataSource">
              <property name="url"><value>jdbc:cjdbc://127.0.0.1:25322/vdb?user=vuser</value></property>
            </bean>

          weblogic的連接池解決辦法:Test Reserved Connections: 如果選擇了這個選項,服務器會在把連接提供給客戶端之前
          對其進行測試。 Test Created Connections: 如果選擇了這個選項,就會在創建一個JDBC
          連接之后和在把它添加到JDBC連接池中的可用連接列表之前,對該JDBC連接進行測試。

          tomcat的jndi關于dbcp的配置:

          <parameter>
                   <name>factory</name>
                   <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
                 </parameter>
                 <parameter>
                   <name>driverClassName</name>
                   <value>com.sybase.jdbc2.jdbc.SybDriver</value>
                 </parameter>
                 <parameter>
                   <name>url</name>
                   <value>xyz</value>
                 </parameter>
                 <parameter>
                   <name>username</name>
                   <value>xyz</value>
                 </parameter>
                 <parameter>
                   <name>password</name>
                   <value>xyz</value>
                 </parameter>
                 <parameter>
                   <name>maxActive</name>
                   <value>5</value>
                 </parameter>
                 <parameter>
                   <name>maxIdle</name>
                   <value>5</value>
                 </parameter>
                 <parameter>
                   <name>maxWait</name>
                   <value>-1</value>
                 </parameter>
                 <parameter>
                   <name>removeAbandoned</name>
                   <value>true</value>
                 </parameter>
                 <parameter>
                   <name>validationQuery</name>
                   <value>select count(*) from sometable where 1 = 0</value>
                 </parameter>
                 <parameter>
                   <name>testOnBorrow</name>
                   <value>true</value>
                 </parameter>

          proxool
          <bean id="proxooldataSource" class="*.proxool.ProxoolDataSource" destroy-method="close">
                <property name="alias"><value>newstest</value></property>
                <property name="driver"><value>net.sourceforge.jtds.jdbc.Driver</value></property>
                <property name="driverUrl"><value>jdbc:jtds:sqlserver://127.0.0.1:1433/news<value></property>
                <property name="user"><value>sa</value></property>
                <property name="password"><value>1</value></property>
                <property name="houseKeepingSleepTime"><value>90000</value></property>
                <property name="prototypeCount"><value>5</value></property>
                <property name="maximumConnectionCount"><value>100</value></property>
                <property name="minimumConnectionCount"><value>10</value></property>
                <property name="trace"><value>true</value></property>
                <property name="verbose"><value>true</value></property>
              </bean>

          posted on 2008-04-16 10:30 HUIKK 閱讀(2120) 評論(0)  編輯  收藏 所屬分類: Spring
          主站蜘蛛池模板: 榆中县| 区。| 丹棱县| 吉首市| 金阳县| 肇庆市| 建平县| 永州市| 马边| 扶沟县| 临汾市| 寻乌县| 阿坝县| 思茅市| 白城市| 正蓝旗| 河津市| 扎兰屯市| 海口市| 高州市| 荆州市| 沛县| 孟连| 施甸县| 周宁县| 霍林郭勒市| 荆州市| 遂宁市| 诏安县| 阿拉善左旗| 南投市| 香港| 郁南县| 长治市| 扶沟县| 庆城县| 凌海市| 吉水县| 邛崃市| 温宿县| 石景山区|