本站不再更新,歡迎光臨 java開發技術網
          隨筆-230  評論-230  文章-8  trackbacks-0

          1、新建web-inf/proxool.xml配置連接池屬性
                proxool支持多配置方式如property,javabean等

          <? xml version="1.0" encoding="ISO-8859-1" ?>

          < something-else-entirely >
           
          < proxool >
               
          < alias > oracle </ alias >
              
          < driver-url > jdbc:oracle:thin:@130.51.65.10:1521:xxxxx </ driver-url >
              
          < driver-class > oracle.jdbc.OracleDriver </ driver-class >
              
          < driver-properties >
                  
          < property  name ="user"  value ="xxxxxxxx" />
                
          < property  name ="password"  value ="xxxxx" />
              
          </ driver-properties >
              
          < maximum-connection-count > 100 </ maximum-connection-count >
               
          < house-keeping-test-sql > select 1 from dual </ house-keeping-test-sql >
           
          </ proxool >
          </ something-else-entirely >

          相關參數說明
            這一步主要配置連接池的一些參數。
                由于整個程序已經可以運行起來了,或許你很高興,但是你可不要高興的太早,如果就這樣拿你的項目去做壓力測試,那十有八九是通不過的!為什么???因為你的連接池還沒有經過參數的調優,下面我就簡單的介紹一下各個參數的意思,你明白了這些,壓力測試肯定不成問題。
                house-keeping-sleep-time: house keeper 保留線程處于睡眠狀態的最長時間,house keeper 的職責就是檢查各個連接的狀態,并判斷是否需要銷毀或者創建,這個的默認值是30秒。
                house-keeping-test-sql:  如果發現了空閑的數據庫連接.house keeper 將會用這個語句來測試.這個語句最好非??斓谋粓绦?如果沒有定義,測試過程將會被忽略。
                maximum-active-time: 如果housekeeper 檢測到某個線程的活動時間大于這個數值.它將會殺掉這個線程.所以確認一下你的服務器的帶寬.然后定一個合適的值.默認是5分鐘。經常有些人或許會遇到正在執行的程序忽然拒絕連接,莫明其妙的程序假死,這些都與這個參數的設置有關,我們大部分數據庫操作都會在5分鐘之內完成,可是偏偏有些可能5分鐘還完成不了,而這個值如果按照默認值的話,連接池就會不管你到底有沒有執行完,都會強行關閉數據庫連接,所以這個值你可要小心設置哦:)
               maximum-connection-count: 最大的數據庫連接數.一般的大應用設置30就足夠了。
               maximum-connection-lifetime: 一個線程的最大壽命.
               minimum-connection-count: 最小的數據庫連接數,一般最好事先初始化一部分連接這樣,對于初次連接數據庫的應用效率比較高,推薦設置5-10
               prototype-count: 連接池中可用的連接數量.如果當前的連接池中的連接少于這個數值.新的連接將被建立(假設沒有超過最大可用數).例如.我們有3個活動連接2個可用連接,而我們的prototype-count是4,那么數據庫連接池將試圖建立另外2個連接.這和 minimum-connection-count不同. minimum-connection-count把活動的連接也計算在內.prototype-count 是spare connections 的數量.
                trace: 如果為true,那么每個被執行的SQL語句將會在執行期被log記錄(DEBUG LEVEL).你也可以注冊一個ConnectionListener (參看ProxoolFacade)得到這些信息.

          2)在web.xml中配置讀取proxool.xml;這個相當于程序中使用
          JAXPConfigurator.configure("proxool.xml", false)。
          在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/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 >


          3)獲取連接參考org.logicalcobwebs.proxool.examples.Simple類。
           下載的開包中有相應的文檔說明。可以參考以下代碼

               public  Connection getConenctionFromProxool() {
                  Connection conn
          = null ;
                  
          try  {
                      Class.forName(
          " org.logicalcobwebs.proxool.ProxoolDriver " );
                      
          // conn=DriverManager.getConnection("protest:oracle.jdbc.OracleDriver:jdbc:oracle:thin:@130.51.65.10:1521:gzjf","","");
                      conn = DriverManager.getConnection( " proxool.oracle " );
                      
          if (conn == null ) {
                          log.info(
          " 獲取連接失敗., " );
                      }
          else  {
                          log.info(
          " 獲得連接成功 " );
                      }
                  }
          catch (Exception e) {
                      log.error(e.toString());
                  }
                  
          return  conn;
              }

           

          下面是監控方法:
          4)web.xml中配置adminservlet:
                adminservlet的作中是監控連接池的運行狀況。

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



          http://localhots/web-name/Admin訪問得到監控結果

          這個工具用起來就還是挺簡單的,網站上有詳細的文檔

          posted on 2006-09-21 10:36 有貓相伴的日子 閱讀(7302) 評論(3)  編輯  收藏 所屬分類: proxool

          評論:
          # re: 使用并監控proxool連接池 2006-09-21 10:45 | 有貓相伴的日子
          # re: 使用并監控proxool連接池 2007-11-14 09:49 | wan
          # re: 使用并監控proxool連接池 2008-03-03 09:58 | it942
          good  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          本站不再更新,歡迎光臨 java開發技術網
          主站蜘蛛池模板: 张家港市| 内丘县| 宁安市| 阳山县| 玛纳斯县| 临沧市| 乐平市| 呈贡县| 石嘴山市| 云梦县| 龙门县| 曲水县| 和平区| 太仆寺旗| 睢宁县| 怀来县| 保德县| 阿克陶县| 都江堰市| 邵东县| 晋江市| 依安县| 南涧| 陆河县| 盐山县| 成都市| 金湖县| 文昌市| 呼图壁县| 九台市| 措美县| 大安市| 翁源县| 清原| 友谊县| 长海县| 兴仁县| 久治县| 元氏县| 晋江市| 乌兰察布市|