com.mysql.jdbc.Driver

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

spring中配置proxool數據源

系統 2033 0

方式一:
?在Spring的"applicationContext.xml"中的dataSource bean定義——

< bean? id ="dataSource"
????class
="org.logicalcobwebs.proxool.ProxoolDataSource" >
????
< property? name ="driver" >
????????
< value > com.mysql.jdbc.Driver </ value >
????
</ property >
????
< property? name ="driverUrl" >
????????
< value > jdbc:mysql://localhost:3306/dbname?user=yourname &amp; password=yourpass </ value >
????
</ property >
????
< property? name ="user" ?value ="yourname" ? />
????
< property? name ="password" ?value ="yourpass" ? />
????
< property? name ="alias" ?value ="Pool_dbname" ? />
????
< property? name ="houseKeepingSleepTime" ?value ="90000" ? />
????
< property? name ="prototypeCount" ?value ="0" ? />
????
< property? name ="maximumConnectionCount" ?value ="50" ? />
????
< property? name ="minimumConnectionCount" ?value ="2" ? />
????
< property? name ="simultaneousBuildThrottle" ?value ="50" ? />
????
< property? name ="maximumConnectionLifetime" ?value ="14400000" ? />
????
< property? name ="houseKeepingTestSql" ?value ="select?CURRENT_DATE" ? />
</ bean >

第一種方式需要把用戶名和密碼寫在連接串里面,
ProxoolDataSource類提供的user,password屬性似乎沒有什么用。
無論提供什么,它都會以空用戶名、密碼去連接數據庫。
這可能是Proxool RC0.93的一個bug,實在讓人惱火,不知道最新的0.9.1有沒有fix這個bug。

不過配置中的user,password兩個屬性還必須設置,否則hibernate會報空指針錯誤。

方式二:
?在Spring的"applicationContext.xml"中的dataSource bean定義——

< bean? id ="dataSource"
????class
="org.springframework.jdbc.datasource.DriverManagerDataSource" >
????
< property? name ="driverClassName" >
????????
< value > org.logicalcobwebs.proxool.ProxoolDriver </ value >
????
</ property >
????
< property? name ="url" >
????????
< value > proxool.Pool_dbname </ value >
????
</ property >
</ bean >

第二種方式需要預先在"web.xml"先配置好Proxool連接池,配置如下:

< servlet >
????
< servlet-name > proxoolServletConfigurator </ servlet-name >
????
< servlet-class >
????????org.logicalcobwebs.proxool.configuration.ServletConfigurator
????
</ servlet-class >
????
< init-param >
????????
< param-name > xmlFile </ param-name >
????????
< param-value > WEB-INF/proxool.xml </ param-value >
????
</ init-param >
????
< load-on-startup > 1 </ load-on-startup >
</ servlet >

< servlet >
????
< servlet-name > context </ servlet-name >
????
< servlet-class >
????????org.springframework.web.context.ContextLoaderServlet
????
</ servlet-class >
????
< load-on-startup > 2 </ load-on-startup >
</ servlet >

注意,第二種方式下Spring的上下文加載如果想使用listener方式(Struts2要求),
則與連接池有關的Bean全得延遲初始化。因為listener比servlet優先初始化,
如果相關Bean不是lazy-init的話,則啟動服務器時會出現Bean找不到連接定義的異常。

?<listener>
??<listener-class>
????? org.springframework.web.context.ContextLoaderListener
??</listener-class>
?</listener>


其中proxool的配置文件可以采用xmlFile"proxool.xml"或者propertyFile"proxool.properties"

"proxool.xml"格式如下:

<? xml?version="1.0"?encoding="UTF-8" ?>
< proxool-config >
???
< proxool >
??????
< alias > Pool_dbname </ alias >
??????
< driver-url > jdbc:mysql://localhost:3306/dbname </ driver-url >
??????
< driver-class > com.mysql.jdbc.Driver </ driver-class >
??????
< driver-properties >
??????
< property? name ="user" ?value ="yourname" />
??????
< property? name ="password" ?value ="yourpass" />
??????
</ driver-properties >
??????
< house-keeping-sleep-time > 60000 </ house-keeping-sleep-time >
??????
< maximum-connection-count > 20 </ maximum-connection-count >
??????
< minimum-connection-count > 2 </ minimum-connection-count >
??????
< prototype-count > 0 </ prototype-count >
??????
< simultaneous-build-throttle > 20 </ simultaneous-build-throttle >
??????
< house-keeping-test-sql > select?CURRENT_DATE </ house-keeping-test-sql >
??????
< statistics > 15s,10m,1d </ statistics >
??????
< statistics-log-level > INFO </ statistics-log-level >
???
</ proxool >
???
< proxool >
????
<!-- 可以配置多個庫 -->
???
</ proxool >
</ proxool-config >


"proxool.properties"格式如下:

jdbc- 0 .proxool.alias = Pool_dbname
jdbc-
0 .proxool.driver-url = jdbc:mysql://localhost: 3306 /dbname
jdbc-
0 .proxool.driver-class = com.mysql.jdbc.Driver
jdbc-
0 .user = yourname
jdbc-
0 .password = yourpass
jdbc-
0 .proxool.house-keeping-sleep-time = 60000
jdbc-
0 .proxool.house-keeping-test-sql = select?CURRENT_DATE
jdbc-
0 .proxool.maximum-connection-count = 10
jdbc-
0 .proxool.minimum-connection-count = 3
jdbc-
0 .proxool.maximum-connection-lifetime = 18000000
jdbc-
0 .proxool.prototype-count = 3
jdbc-
0 .proxool.simultaneous-build-throttle = 10
jdbc-
0 .proxool.recently-started-threshold = 60000
jdbc-
0 .proxool.overload-without-refusal-lifetime = 50000
jdbc-
0 .proxool.maximum-active-time = 60000
jdbc-
0 .proxool.verbose = true
jdbc-
0 .proxool.trace = true
jdbc-
0 .proxool.fatal-sql-exception = Fatal?error

jdbc-
2 .proxool.alias = Pool_dbname2
……
<!--可以配置多個庫-->

三、更詳細的proxool.xml的配置屬性說明: ?

    <?xml version="1.0" encoding="ISO-8859-1"?><!--
Properties for Proxool Configurator testing. Defines the same parameters as
TestHelper.buildCompleteAlternativeProperties()
-->
<something-else-entirely xmlns="http://sumthin.else.entirely" xmlns:proxool="The latest version is available at http://proxool.sourceforge.net/xml-namespace">
    <proxool:proxool>
        <proxool:alias>xml-test-ns</proxool:alias>
        <proxool:driver-url>jdbc:hsqldb:db/test</proxool:driver-url>
        <proxool:driver-class>org.hsqldb.jdbcDriver</proxool:driver-class>
        <proxool:driver-properties>
            <proxool:property name="user" value="sa"/>
            <proxool:property name="password" value=""/>
        </proxool:driver-properties>
        <proxool:house-keeping-sleep-time>40000</proxool:house-keeping-sleep-time>
        <proxool:house-keeping-test-sql>select CURRENT_DATE</proxool:house-keeping-test-sql>
        <proxool:maximum-connection-count>10</proxool:maximum-connection-count>
        <proxool:minimum-connection-count>3</proxool:minimum-connection-count>
        <proxool:maximum-connection-lifetime>18000000</proxool:maximum-connection-lifetime> <!-- 5 hours -->
        <proxool:simultaneous-build-throttle>5</proxool:simultaneous-build-throttle>
        <proxool:recently-started-threshold>40000</proxool:recently-started-threshold>
        <proxool:overload-without-refusal-lifetime>50000</proxool:overload-without-refusal-lifetime>
        <proxool:maximum-active-time>60000</proxool:maximum-active-time>
        <proxool:verbose>true</proxool:verbose>
        <proxool:trace>true</proxool:trace>
        <proxool:fatal-sql-exception>Fatal error</proxool:fatal-sql-exception>
        <proxool:prototype-count>2</proxool:prototype-count>
    </proxool:proxool>
    <nothing-to-do-with-proxool>
        <proxool:proxool>
            <proxool:alias>xml-test-ns-2</proxool:alias>
            <proxool:driver-url>jdbc:hsqldb:db/test</proxool:driver-url>
            <proxool:driver-class>org.hsqldb.jdbcDriver</proxool:driver-class>
            <proxool:driver-properties>
                <proxool:property name="user" value="sa"/>
                <proxool:property name="password" value=""/>
            </proxool:driver-properties>
            <proxool:house-keeping-sleep-time>40000</proxool:house-keeping-sleep-time>
            <proxool:house-keeping-test-sql>select CURRENT_DATE</proxool:house-keeping-test-sql>
            <proxool:maximum-connection-count>10</proxool:maximum-connection-count>
            <proxool:minimum-connection-count>3</proxool:minimum-connection-count>
            <proxool:maximum-connection-lifetime>18000000</proxool:maximum-connection-lifetime> <!-- 5 hours -->
            <proxool:simultaneous-build-throttle>5</proxool:simultaneous-build-throttle>
            <proxool:recently-started-threshold>40000</proxool:recently-started-threshold>
            <proxool:overload-without-refusal-lifetime>50000</proxool:overload-without-refusal-lifetime>
            <proxool:maximum-active-time>60000</proxool:maximum-active-time>
            <proxool:verbose>true</proxool:verbose>
            <proxool:trace>true</proxool:trace>
            <proxool:fatal-sql-exception>Fatal error</proxool:fatal-sql-exception>
            <proxool:prototype-count>2</proxool:prototype-count>
        </proxool:proxool>
    </nothing-to-do-with-proxool>
</something-else-entirely>
  

屬性列表說明:

fatal-sql-exception : ?它是一個逗號分割的信息片段.當一個SQL異常發生時,他的異常信息將與這個信息片段進行比較.如果在片段中存在,那么這個異常將被認為是個致命錯誤(Fatal SQL Exception ).這種情況下,數據庫連接將要被放棄.無論發生什么,這個異常將會被重擲以提供給消費者.用戶最好自己配置一個不同的異常來拋出.

fatal-sql-exception-wrapper-class : 正如上面所說,你最好配置一個不同的異常來重擲.利用這個屬性,用戶可以包裝SQLException,使他變成另外一個異常.這個異常或者繼承SQLException或者繼承字RuntimeException.proxool自帶了2個實現:'org.logicalcobwebs.proxool.FatalSQLException' 和'org.logicalcobwebs.proxool.FatalRuntimeException' .后者更合適.

house-keeping-sleep-time : house keeper ?保留線程處于睡眠狀態的最長時間,house keeper 的職責就是檢查各個連接的狀態,并判斷是否需要銷毀或者創建.

house-keeping-test-sql : ? 如果發現了空閑的數據庫連接.house keeper 將會用這個語句來測試.這個語句最好非常快的被執行.如果沒有定義,測試過程將會被忽略。

injectable-connection-interface : ?允許proxool實現被代理的connection對象的方法.

injectable-statement-interface : ?允許proxool實現被代理的Statement 對象方法.

injectable-prepared-statement-interface : ?允許proxool實現被代理的PreparedStatement 對象方法.

injectable-callable-statement-interface : ?允許proxool實現被代理的CallableStatement 對象方法.

jmx : ?略

jmx-agent-id : ?略

jndi-name : ?數據源的名稱

maximum-active-time : ?如果housekeeper 檢測到某個線程的活動時間大于這個數值.它將會殺掉這個線程.所以確認一下你的服務器的帶寬.然后定一個合適的值.默認是5分鐘.

maximum-connection-count : ?最大的數據庫連接數.

maximum-connection-lifetime : ?一個線程的最大壽命.

minimum-connection-count : ?最小的數據庫連接數

overload-without-refusal-lifetime : ?略

prototype-count : ?連接池中可用的連接數量.如果當前的連接池中的連接少于這個數值.新的連接將被建立(假設沒有超過最大可用數).例如.我們有3個活動連接2個可用連接,而我們的prototype-count是4,那么數據庫連接池將試圖建立另外2個連接.這和 minimum-connection-count不同. minimum-connection-count把活動的連接也計算在內.prototype-count 是spare connections 的數量.

recently-started-threshold : ? 略

simultaneous-build-throttle : ? 略

statistics :? ?連接池使用狀況統計。 參數“10s,1m,1d”

statistics-log-level : ? 日志統計跟蹤類型。 參數“ERROR”或 “INFO”

test-before-use : ?略

test-after-use : ?略

trace : ?如果為true,那么每個被執行的SQL語句將會在執行期被log記錄(DEBUG LEVEL).你也可以注冊一個ConnectionListener (參看ProxoolFacade)得到這些信息.

?

verbose : ?詳細信息設置。 參數 bool 值 ? ?

?

四、還可以配置管理proxool的servlet
          <?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">
<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/proxool.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>

<servlet>
  <servlet-name>Admin</servlet-name>
  <servlet-class>
    org.logicalcobwebs.proxool.admin.servlet.AdminServlet
  </servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>Admin</servlet-name>
  <url-pattern>/admin</url-pattern>
</servlet-mapping>
<!-- 配置受保護域,只有Tomcat管理員才能察看連接池的信息 -->
<security-constraint>
  <web-resource-collection>
      <web-resource-name>proxool</web-resource-name> 
      <url-pattern>/admin</url-pattern>
  </web-resource-collection>
  <auth-constraint>
     <role-name>manager</role-name> 
     </auth-constraint>
  </security-constraint>
 <login-config>
     <auth-method>BASIC</auth-method> 
     <realm-name>proxool manager Application</realm-name> 
  </login-config>
  <security-role>
    <description>The role that is required to log in to the Manager Application</description> 
     <role-name>manager</role-name> 
 </security-role>
  <error-page>
    <error-code>401</error-code>
    <location>/401.jsp</location>
  </error-page>
</web-app>
        
?

spring中配置proxool數據源


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久草久草 | 国产第二区 | 久久99精品久久久久久噜噜丰满 | 国产成人免费片在线观看 | 日本久久黄色 | a级毛片在线视频免费观看 a级免费网站 | 轻轻操在线观看 | 极品粉嫩粉嫩福利视频在线 | 欧美午夜性春猛交 | 亚洲国产视频一区 | 伊人色色网| 嘿咻嘿咻免费区在线观看吃奶 | 日韩精品久久不卡中文字幕 | 97热在线 | 亚洲精品在线视频观看 | 四虎在线网址 | 成人a毛片高清视频 | 欧美黄一片 | 黄色福利在线观看 | 天天操视频 夜夜 | 美国成人a免费毛片 | 欧美日韩中文一区 | 国产东北露脸对白 | 99久久国产综合精品麻豆 | 久久久久女人精品毛片 | 国产成人久久精品二区三区 | 日本一级成人毛片免费观看 | 日本免费人成黄页网观看视频 | 曰曰鲁夜夜免费播放视频 | 国产精品高清视亚洲一区二区 | 天天操夜夜爽 | 男女污污在线观看 | 日本不卡中文字幕 | 国产欧美另类久久久精品免费 | 日韩欧美国产偷亚洲清高 | 午夜性色福利视频在线视频 | 久久成人综合网 | 曰批免费视频播放在线看片二 | 中文字幕色综合久久 | 成人久久 | 久久9966精品国产免费 |