com.mysql.jdbc.Driver

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

spring中配置proxool數(shù)據(jù)源

系統(tǒng) 2110 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 >

第一種方式需要把用戶(hù)名和密碼寫(xiě)在連接串里面,
ProxoolDataSource類(lèi)提供的user,password屬性似乎沒(méi)有什么用。
無(wú)論提供什么,它都會(huì)以空用戶(hù)名、密碼去連接數(shù)據(jù)庫(kù)。
這可能是Proxool RC0.93的一個(gè)bug,實(shí)在讓人惱火,不知道最新的0.9.1有沒(méi)有fix這個(gè)bug。

不過(guò)配置中的user,password兩個(gè)屬性還必須設(shè)置,否則hibernate會(huì)報(bào)空指針錯(cuò)誤。

方式二:
?在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 >

第二種方式需要預(yù)先在"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要求),
則與連接池有關(guān)的Bean全得延遲初始化。因?yàn)閘istener比servlet優(yōu)先初始化,
如果相關(guān)Bean不是lazy-init的話(huà),則啟動(dòng)服務(wù)器時(shí)會(huì)出現(xiàn)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 >
????
<!-- 可以配置多個(gè)庫(kù) -->
???
</ 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
……
<!--可以配置多個(gè)庫(kù)-->

三、更詳細(xì)的proxool.xml的配置屬性說(shuō)明: ?

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

屬性列表說(shuō)明:

fatal-sql-exception : ?它是一個(gè)逗號(hào)分割的信息片段.當(dāng)一個(gè)SQL異常發(fā)生時(shí),他的異常信息將與這個(gè)信息片段進(jìn)行比較.如果在片段中存在,那么這個(gè)異常將被認(rèn)為是個(gè)致命錯(cuò)誤(Fatal SQL Exception ).這種情況下,數(shù)據(jù)庫(kù)連接將要被放棄.無(wú)論發(fā)生什么,這個(gè)異常將會(huì)被重?cái)S以提供給消費(fèi)者.用戶(hù)最好自己配置一個(gè)不同的異常來(lái)拋出.

fatal-sql-exception-wrapper-class : 正如上面所說(shuō),你最好配置一個(gè)不同的異常來(lái)重?cái)S.利用這個(gè)屬性,用戶(hù)可以包裝SQLException,使他變成另外一個(gè)異常.這個(gè)異常或者繼承SQLException或者繼承字RuntimeException.proxool自帶了2個(gè)實(shí)現(xiàn):'org.logicalcobwebs.proxool.FatalSQLException' 和'org.logicalcobwebs.proxool.FatalRuntimeException' .后者更合適.

house-keeping-sleep-time : house keeper ?保留線程處于睡眠狀態(tài)的最長(zhǎng)時(shí)間,house keeper 的職責(zé)就是檢查各個(gè)連接的狀態(tài),并判斷是否需要銷(xiāo)毀或者創(chuàng)建.

house-keeping-test-sql : ? 如果發(fā)現(xiàn)了空閑的數(shù)據(jù)庫(kù)連接.house keeper 將會(huì)用這個(gè)語(yǔ)句來(lái)測(cè)試.這個(gè)語(yǔ)句最好非常快的被執(zhí)行.如果沒(méi)有定義,測(cè)試過(guò)程將會(huì)被忽略。

injectable-connection-interface : ?允許proxool實(shí)現(xiàn)被代理的connection對(duì)象的方法.

injectable-statement-interface : ?允許proxool實(shí)現(xiàn)被代理的Statement 對(duì)象方法.

injectable-prepared-statement-interface : ?允許proxool實(shí)現(xiàn)被代理的PreparedStatement 對(duì)象方法.

injectable-callable-statement-interface : ?允許proxool實(shí)現(xiàn)被代理的CallableStatement 對(duì)象方法.

jmx : ?略

jmx-agent-id : ?略

jndi-name : ?數(shù)據(jù)源的名稱(chēng)

maximum-active-time : ?如果housekeeper 檢測(cè)到某個(gè)線程的活動(dòng)時(shí)間大于這個(gè)數(shù)值.它將會(huì)殺掉這個(gè)線程.所以確認(rèn)一下你的服務(wù)器的帶寬.然后定一個(gè)合適的值.默認(rèn)是5分鐘.

maximum-connection-count : ?最大的數(shù)據(jù)庫(kù)連接數(shù).

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

minimum-connection-count : ?最小的數(shù)據(jù)庫(kù)連接數(shù)

overload-without-refusal-lifetime : ?略

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

recently-started-threshold : ? 略

simultaneous-build-throttle : ? 略

statistics :? ?連接池使用狀況統(tǒng)計(jì)。 參數(shù)“10s,1m,1d”

statistics-log-level : ? 日志統(tǒng)計(jì)跟蹤類(lèi)型。 參數(shù)“ERROR”或 “INFO”

test-before-use : ?略

test-after-use : ?略

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

?

verbose : ?詳細(xì)信息設(shè)置。 參數(shù) 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>
<!-- 配置受保護(hù)域,只有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數(shù)據(jù)源


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 蜜桃精品噜噜噜成人av | 春色av | 国产二区三区视频 | 日韩视频在线观看免费视频 | 奇米777四色成人影视 | 日韩手机专区 | 精品视频一区二区三区在线观看 | 比比资源先锋影音网 | 成人毛片100免费观看 | 一级毛片直接看 | 久久亚洲国产精品日日av夜夜 | 99精品视频在线免费观看 | 色综合天天色 | av中文字幕在线播放 | 国产片翁熄系列乱在线视频 | 久久久久综合 | 久久精品视频日本 | 久久一本 | 激情五月色综合婷婷大片 | 综合97 | 亚洲一区二区三区在线 | 精品成人一区二区三区 | 黄毛片| 97久久国语露脸精品对白 | 亚洲香蕉久久一区二区三区四区 | 欧美自拍视频在线 | 天天插天天干 | 午夜视频一区二区 | 四库影院永久在线精品 | 91精品国产综合久久久久久丝袜 | 亚洲一区中文字幕在线观看 | 午夜寂寞少妇aaa片毛片 | 玖玖福利 | 男女交配视频网站 | 观看av| 亚洲在线播放视频 | 49pao强力免费打造在线高清 | 日韩加勒比在线 | 色多多视频导航 | 黄片毛片一级 | 国产成人19禁在线观看 |