Proxool 提供了一些方法可以讓您取得連線池的相關統計資料,例如您可以使用org.logicalcobwebs.proxool.admin.SnapshotIF來取得連線池目前使用狀態的資訊:
SnapshotIF snapshot = ProxoolFacade.getSnapshot("example", true);
System.out.println(snapshot.getActiveConnectionCount());
System.out.println(snapshot.getMaximumConnectionCount());
....
true 表示取得詳細的連線池訊息;您也可以對連線池的資料進行定時統計,這必須在XML或屬性檔中設定統計的時間,例如在XML中增加以下內容:
<proxool>
....
<statistics>1m,15m,1d</statistics>
</proxool>
統計的時隔可以分為s(econds),、m(inutes)、h(ours)與d(ays),就上面的設定來說,就是依分鐘、五分鐘、一天分別作統計,如果是在屬性檔案中設定,則增加:
jdbc-0.proxool.statistics=1m,15m,1d
如果要取得統計資訊,可以從org.logicalcobwebs.proxool.admin.StatisticsIF取得,例如取得所有的統計資料:
StatisticsIF[] statisticsArray = ProxoolFacade.getStatistics("example");
接下來就可以使用StatisticsIF的getXXX()方法來取得相關的訊息,您也可以指定取回某個時間的統計資訊,例如每15分鐘的統計資料:
StatisticsIF statistics = ProxoolFacade.getStatistics("example", "15m");
如果您使用Web應用程式,則可以直接利用org.logicalcobwebs.proxool.admin.servlet.AdminServlet來取得相關的統計資料,在web.xml中這麼設定:
<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>
啟動Container,在測試資料庫後,您就可以連接Servlet取得連線統計訊息,例如:
AdminServlet的畫面就像是這樣:
http://proxool.sourceforge.net/adminServlet.html