Hibernate Proxool连接池配置总结及常遇问题

Hibernate Proxool连接池配置总结及常遇问题
2008-04-12 13:38

使用的proxool版本:proxool-0.9.0RC3.jar

配置目录:

Hibernate Proxool连接池配置总结及常遇问题_第1张图片

Hibernate.hbm.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">
<hibernate-configuration>
<session-factory name="default">
    <property name="dialect">
    org.hibernate.dialect.MySQLDialect
   </property>
   <property name="show_sql">true</property>
   <property name="show_format">true</property>
   <property name="myeclipse.connection.profile">shsmis</property>
   <!-- proxool connection pools-->
  <property name="hibernate.proxool.pool_alias">pool</property>
   <property name="hibernate.proxool.xml">ProxoolConf.xml</property>
   <property name="connection.provider_class">
    org.hibernate.connection.ProxoolConnectionProvider
   </property>
   <mapping resource="org/shsmis/hibernate/vo/Manager.hbm.xml" />
</session-factory>
</hibernate-configuration>
ProxoolConf.xml文件配置

<?xml version="1.0" encoding="UTF-8"?>
<proxool>
<alias>pool</alias>
<driver-url>jdbc:mysql://localhost:3306/shsmis</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="root"></property>
<property name="password" value="root"></property>
</driver-properties>
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<maximum-new-connections>20</maximum-new-connections>
<prototype-count>5</prototype-count>
<maximum-connection-count>100</maximum-connection-count>
<minimum-connection-count>10</minimum-connection-count>
</proxool>

web.xml文件配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts2 Hibernate Test</display-name>
<welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
   <filter-name>struts2</filter-name>
   <filter-class>
    org.apache.struts2.dispatcher.FilterDispatcher
   </filter-class>
</filter>
<filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

<servlet>
   <servlet-name>proxool</servlet-name>
   <servlet-class>
    org.logicalcobwebs.proxool.admin.servlet.AdminServlet
    </servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>proxool</servlet-name>
   <url-pattern>/Admin/proxool</url-pattern>
</servlet-mapping>

</web-app> 监控连接池 访问 http://localhost:8080/S2Htest/Admin/proxool

注意问题:

1.目录结构,本人经过将近一天的测试,Hibernte.hbm.xml文件可以放在任何位置,但 Proxool.xml文件必须放在src目录下,也就是项目的classes目录下.我一开始将Proxool.xml放在和Hibernate同一目 录下,也曾这样配置过:<property name="hibernate.proxool.xml">/org/shsmis/hibernate/cfg/Proxool.xml</property>

    :<property name="hibernate.proxool.xml">org/shsmis/hibernate/cfg/Proxool.xml</property>

    :<property name="hibernate.proxool.xml>org.shsmis.hibernate.cfg.Proxool</property>都会发生错误 :Unable to locate config file:

2.对于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/ProxoolConf.xml</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
</servlet> 让连接池应用程序一开始就运行

加上这些配置时,服务器刚启动时没有错误,但运行一个简单的程序出错 :Proxool Provider unable to load JAXP configurator file: ProxoolConf.xml;Attempt to register duplicate pool called 'pool' 通过网上搜索"第二个的错误"原因是在应用中重 复调用Hibernate的sessionFactory.个人猜测是与Hibernate.hbm.xml 中配置同时调用了sessionfactory.于是我就把这些配置去掉.问题解决.但这不是问题解决的办法,怎样配置才能让连接池一开始就运行呢?不好 意思,我也不会啊!

3.对于Proxool的编码问题,不要改变ProxoolConf.xml的编辑工具.如果改变就很有可能改变文件的编码格式,会出错Proxool Provider unable to load JAXP configurator file: ProxoolConf.xml.如果出现这样的错误很大可能是这个原因,此时应该删除该文件,新建一次.尽量不要直接复制原来文件中的代码.

以上这些就是我在使用Proxool连接池遇到的问题,与网上的大体一样.如果有高手知道这些错误的根本原因,例如:Hibernate加载proxool.xml文件的过程和Proxool的编码问题,希望发到我的邮箱 [email protected] 小弟将不尽感激.

你可能感兴趣的:(Hibernate Proxool连接池配置总结及常遇问题)