1. 程式人生 > >連接池報錯 Proxool Provider unable to load JAXP configurator file: proxool.xml

連接池報錯 Proxool Provider unable to load JAXP configurator file: proxool.xml

mage 最大連接數 代碼片段 大連 解決方案 自己 onf 去掉 current

上篇博文講到簡易配置 proxool 連接池:http://www.cnblogs.com/linnuo/p/7232380.html

由於把說明註釋留在了 proxool.xml 配置文件裏導致配置後報錯,原因如下:

hibernate.cfg.xml 代碼片段:

<session-factory>
    <property name="show_sql">true</property>
    <property name="generate_statistics">false</property>
    <property 
name="connection.useUnicode">true</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> <property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property> <
property name="hibernate.proxool.xml">proxool.xml</property> <property name="hibernate.proxool.pool_alias">mysqldb</property> </session-factory>

proxool.xml 完整代碼:

<?xml version="1.0" encoding="UTF-8"?>
<!-- the proxool configuration can be embedded within your own application‘s.
Anything outside the "proxool" tag is ignored. 
--> <something-else-entirely> <proxool> <!--連接池的別名--> <alias>mysqldb</alias> <!--proxool只能管理由自己產生的連接--> <driver-url>jdbc:mysql://127.0.0.1:3306/ucom?useUnicode=true&amp;characterEncoding=UTF8</driver-url> <!-- JDBC驅動程序 --> <driver-class>com.mysql.jdbc.Driver</driver-class> <driver-properties> <property name="user" value="root"/> <property name="password" value="gdyl2017"/> </driver-properties> <!-- proxool自動偵察各個連接狀態的時間間隔(毫秒),偵察到空閑的連接就馬上回收,超時的銷毀--> <house-keeping-sleep-time>90000</house-keeping-sleep-time> <!-- 指因未有空閑連接可以分配而在隊列中等候的最大請求數,超過這個請求數的用戶連接就不會被接受--> <maximum-new-connections>20</maximum-new-connections> <!-- 最少保持的空閑連接數--> <prototype-count>5</prototype-count> <!-- 允許最大連接數,超過了這個連接,再有請求時,就排在隊列中等候,最大的等待請求數由maximum-new-connections決定--> <maximum-connection-count>100</maximum-connection-count> <!-- 最小連接數--> <minimum-connection-count>10</minimum-connection-count> <!-- 在分配連接前後是否進行有效性測試,這個是解決本問題的關鍵 --> <test-before-use>true</test-before-use> <test-after-use>true</test-after-use> <!-- 用於測試的SQL語句 一定要寫(不知道問什麽) --> <house-keeping-test-sql>SELECT CURRENT_USER</house-keeping-test-sql> </proxool> </something-else-entirely>

    以上代碼放在本地運行沒問題,但是放到服務器報錯

技術分享

  找了許久終於發現了問題:proxool.xml 文件裏不能存在中文,包括註釋

  

  解決方案:

    將 proxool.xml 的中文去掉即可,如下:

    

<?xml version="1.0" encoding="UTF-8"?>
<!-- the proxool configuration can be embedded within your own application‘s.
Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
  <proxool>
    <alias>mysqldb</alias>
    <driver-url>jdbc:mysql://127.0.0.1:3306/ucom?useUnicode=true&amp;characterEncoding=UTF8</driver-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <driver-properties>
      <property name="user" value="root"/>
      <property name="password" value="gdyl2017"/>
    </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>
    <test-before-use>true</test-before-use>  
    <test-after-use>true</test-after-use>  
    <house-keeping-test-sql>SELECT CURRENT_USER</house-keeping-test-sql>  
  </proxool>
</something-else-entirely>

  

連接池報錯 Proxool Provider unable to load JAXP configurator file: proxool.xml