天天看點

使用并監控proxool連接配接池

<a href="http://baidongli.iteye.com/blog/38735">http://baidongli.iteye.com/blog/38735</a>

1、建立web-inf/proxool.xml配置連接配接池屬性

      proxool支援多配置方式如property,javabean等

使用并監控proxool連接配接池

&lt;?

xml version="1.0" encoding="ISO-8859-1"?&gt;

使用并監控proxool連接配接池
使用并監控proxool連接配接池

&lt;

something-else-entirely&gt;

使用并監控proxool連接配接池

 &lt;

proxool &gt;

使用并監控proxool連接配接池

     &lt;

alias &gt;

oracle &lt;/alias

&gt;

使用并監控proxool連接配接池

    &lt;

driver-url&gt;

jdbc:oracle:thin:@130.51.65.10:1521:xxxxx&lt;/

使用并監控proxool連接配接池

driver-class&gt;

oracle.jdbc.OracleDriver&lt;/

使用并監控proxool連接配接池

driver-properties&gt;

使用并監控proxool連接配接池

        &lt;

property name

="user" value

="xxxxxxxx"/&gt;

使用并監控proxool連接配接池

      &lt;

="password" value

="xxxxx"/&gt;

使用并監控proxool連接配接池

    &lt;/

使用并監控proxool連接配接池

maximum-connection-count&gt;

100 &lt;/

maximum-connection-count &gt;

使用并監控proxool連接配接池

house-keeping-test-sql&gt;

select 1 from dual&lt;/

使用并監控proxool連接配接池

 &lt;/

使用并監控proxool連接配接池

&lt;/

使用并監控proxool連接配接池

相關參數說明

  這一步主要配置連接配接池的一些參數。

      由于整個程式已經可以運作起來了,或許你很高興,但是你可不要高興的太早,如果就這樣拿你的項目去做壓力測試,那十有八九是通不過的!為什麼啊?因為你的連接配接池還沒有經過參數的調優,下面我就簡單的介紹一下各個參數的意思,你明白了這些,壓力測試肯定不成問題。

      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檔案中添加以下内容

使用并監控proxool連接配接池

&lt; servlet

使用并監控proxool連接配接池

servlet-name&gt;

ServletConfigurator&lt;/

使用并監控proxool連接配接池

servlet-class&gt;

org.logicalcobwebs.proxool.configuration.ServletConfigurator&lt;/

使用并監控proxool連接配接池

init-param&gt;

使用并監控proxool連接配接池

            &lt;

param-name&gt;

xmlFile &lt;/

param-name &gt;

使用并監控proxool連接配接池

param-value&gt;

WEB-INF/proxool.xml&lt;/

使用并監控proxool連接配接池

        &lt;/

使用并監控proxool連接配接池

load-on-startup&gt;

1 &lt;/

load-on-startup &gt;

使用并監控proxool連接配接池

servlet &gt;

使用并監控proxool連接配接池
使用并監控proxool連接配接池

Admin &lt;/

servlet-name &gt;

使用并監控proxool連接配接池

org.logicalcobwebs.proxool.admin.servlet.AdminServlet&lt;/

使用并監控proxool連接配接池

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

擷取連接配接失敗.,

使用并監控proxool連接配接池
使用并監控proxool連接配接池

"

);

            } else

獲得連接配接成功 " );

            }

        } catch

(Exception e) {

            log.error(e.toString());

        }

         return

 conn;

    }

下面是監控方法:

4)web.xml中配置adminservlet:

      adminservlet的作中是監控連接配接池的運作狀況。

使用并監控proxool連接配接池
使用并監控proxool連接配接池
使用并監控proxool連接配接池
使用并監控proxool連接配接池
使用并監控proxool連接配接池
使用并監控proxool連接配接池

servlet-mapping&gt;

使用并監控proxool連接配接池
使用并監控proxool連接配接池

url-pattern&gt;

/Admin &lt;/

url-pattern &gt;

使用并監控proxool連接配接池

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