ZhipSoft.com
              冬去春來
                  鄭重聲明:本Blog純屬個人學習、工作需要,記錄相關資料。請不要發表任何有人身攻擊的言論,謝謝!!www.ZhipSoft.com
          posts - 94,comments - 149,trackbacks - 0
          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>oracle.jdbc.driver.OracleDriver</value>
            </property>
            <property name="jdbcUrl">
             <value>jdbc:oracle:thin:@218.202.151.179:58580:ORA9I</value>
            </property>
            <property name="user">
             <value>oa</value>
            </property>
            <property name="password">
             <value>XXXX</value>
            </property>
            <property name="minPoolSize">
             <value>15</value>
            </property>
            <property name="acquireIncrement">
             <value>5</value>
            </property>
            <property name="maxPoolSize">
             <value>25</value>
            </property>

           

          <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>
          =================================================================

          c3p0 連接池

              Hibernate 配置文件主要用于配置數據庫連接和Hibernate運行時所需要的各種屬性(如,連接池,SQL方言,是否現實SQL日志等)。
              Hibernate 同時支持 xml 格式的配置文件各傳統的 properties 文件配置形式,這里采用 xml 。
              配置文件名默認為 hibernate.cfg.xml(或 hibernage.properties),Hibernate在初始化期間自動在 classPath中尋找這個文件,并讀取其中的配置信息,并加載。
              以下是 hibernate.cfg.xml 文件(在項目 HibernateProject 的src 下放以下內容):
          <?xml version="1.0" encoding="GB2312"?>
          <!DOCTYPE hibernate-configuration PUBLIC
                  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                  "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

          <hibernate-configuration>
           <session-factory>
            
            <!-- 是否將運行期生成的SQL輸出到日志以供調試 -->
            <property name="hibernate.show_sql">
             true
            </property>
            
            <!-- SQL 方言-->
            <property name="hibernate.dialect">
             org.hibernate.dialect.SQLServerDialect
            </property>
            
            <!-- 數據庫用戶 -->
            <property name="hibernate.connection.username">
             sa
            </property>
            
            <!-- 數據庫密碼 -->
            <property name="hibernate.connection.password">
             123456
            </property>
            
            <!-- 數據庫 JDBC 驅動-->
             <property name="hibernate.connection.driver_class">
             com.microsoft.jdbc.sqlserver.SQLServerDriver
            </property>
            
            <!-- 數據庫 URL -->
            <property name="hibernate.connection.url">
             jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=hbdb
            </property>
            
            <!-- 事務管理類型 -->
            <!-- Hibernate 3 對包名做了修改 ( net.sf.hibernate  => org.hibernate )-->
            <property name="hibernate.transaction.factory_class">
             org.hibernate.transaction.JDBCTransactionFactory
            </property>
            
            <!-- c3p0 連接池 -->
            <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
            <property name="hibernate.c3p0.max_size">2</property>
            <property name="hibernate.c3p0.min_size">2</property>
            <property name="hibernate.c3p0.timeout">50000</property>
            <property name="hibernate.c3p0.max_statements">100</property>
            <property name="hibernate.c3p0.idle_test_period">3000</property>
            <property name="hibernate.c3p0.acquire_increment">2</property>
            <property name="hibernate.c3p0.validate">false</property>
           
            
            <!-- 映射的配置文件,對應數據庫表 KELA_STUDENT 的映射文件,在后面將看到這個文件的配置 -->
            <mapping resource="com/kela/hb/pojo/KelaStudent.hbm.xml"/>
           </session-factory>
          </hibernate-configuration>



                  本Blog純屬個人學習、工作需要,記錄相關資料。請不要發表任何有人身攻擊的言論,謝謝! www.zhipsoft.cn
          posted on 2006-09-21 16:49 ZhipSoft 閱讀(4333) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 什邡市| 东乌| 新疆| 嵩明县| 十堰市| 云南省| 韩城市| 焉耆| 西青区| 阿巴嘎旗| 金川县| 景德镇市| 武胜县| 岱山县| 山东| 大埔县| 建阳市| 全椒县| 吐鲁番市| 铜梁县| 太仆寺旗| 铜川市| 佳木斯市| 普洱| 宁乡县| 堆龙德庆县| 海林市| 咸宁市| 商都县| 兴城市| 凤凰县| 佛山市| 萨嘎县| 剑阁县| 宾阳县| 新津县| 上蔡县| 磐石市| 旬邑县| 渑池县| 江西省|