配置hibernate3.2與proxool0.93連接池


按照以上步驟配置好proxool,且能正確運行,則修改hibernate.cfm.xml文件,內容如下:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>
<!-- 此爲註釋部分
<session-factory>
  <property name="dialect">
   org.hibernate.dialect.SQLServerDialect
  </property>
  <property name="myeclipse.connection.profile">
   for mssql
  </property>
  <property name="connection.url">
   jdbc:jtds:sqlserver://localhost:2767/camis
  </property>
  <property name="connection.username">sa</property>
  <property name="connection.password">sa</property>
  <property name="connection.driver_class">
   net.sourceforge.jtds.jdbc.Driver
  </property>
  <mapping resource="com/comingnet/hibernate/角色表.hbm.xml" />
 </session-factory>
 -->
<session-factory>
     <!-- Database connection settings -->
     <property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
     <property name="hibernate.proxool.pool_alias">MyPool</property>
     <property name="hibernate.proxool.xml">proxool.xml</property>
   <mapping resource="com/comingnet/hibernate/角色表.hbm.xml" />
</session-factory> 
</hibernate-configuration>


但要注意的是,如果在web.xml裏面配置了讓proxool在WEB窗口啓動時自動打開連接,那麼會出現如下的錯誤,我被這個錯誤折磨了差不多一天

。實際上出錯的信息提示得也很清楚,但是當時在web.xml裏面註釋掉了不該註釋的東西,而把該註釋的那幾行沒註釋掉,所以有時候一個不起

眼的小錯誤真是夠讓你受的。
javax.servlet.ServletException: Proxool Provider unable to load JAXP configurator file: proxool.xml
org.logicalcobwebs.proxool.ProxoolException: Attempt to register duplicate pool called 'MyPool'
把web.xml中的
  <servlet>
    <servlet-name>ServletConfigurator</servlet-name>
    <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
    <init-param>
      <param-name>xmlFile</param-name>
      <param-value>WEB-INF/classes/proxool.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
註釋掉就OK了。

一般情況下,如果重複調用hibernate的sessionFactory,仍然會出現上述問題,只不過第一次成功,再執行即會出現。解決辦法是不要重複調

用sessionFactory,只在第一次執行時註冊,可以直接利用MyEclipse生成的HibernateSessionFactory類來獲取session。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章