2011-11-23 61 views
8

我需要了解有關監控我的Web應用程序中的連接池的信息。
有關應用程序的技術規範中提到如下:連接池監控

  1. 應用服務器 - JBoss應用服務器
  2. 數據庫 - Oracle 10g中
  3. 後端 - 休眠

我需要知道監控連接池的方式有哪些,以及我們如何做到這一點。無論是通過Hibernate還是通過JBoss或其他方式? 請建議我以正確的方式做到這一點。

回答

3

這可能不是你想要的。但是你用什麼游泳池呢?如果你還沒有決定,退房C3PO,它提供了JMX公開的屬性監測

9

對於一個典型的服務器端Java應用程序,監測的最優選的方式之一是通過JMX。大多數應用程序(包括連接池)提供默認的JMX bean(稱爲MBeans或託管bean),可用於監視。連接池(例如C3P0)創建一個MBean與潛在可用的JMX服務器(這是存在於幾乎所有的應用服務器包括的Tomcat,JBoss的)

的MBean結合,將保存所有有關連接的信息池。你已經提到你正在使用JBoss服務器。在Jboss提供的Web管理控制檯上,應該是是查看所有MBean(包括部署的連接池的MBean)的規定。

另一種監控方式是通過Java自帶的JConsole實用程序。同樣的JConsole也可以用於monitor the JBoss AS。

+0

如何使用JConsole監視DBCP池。我搞不清楚了 !!任何幫助或指導指向正確的方向。我正在使用java 5和Tomcat 5. – Mubasher

+1

DBCP不支持JMX開箱即用。但有辦法做到這一點。看看這個鏈接。 http://www.nurkiewicz.com/2011/12/enabling-jmx-in-hibernate-ehcache-qurtz.html – Santosh

+0

似乎更準確地說,應用程序的模塊(或類)將提供默認的MBean。 ..不存在應用程序的MBean。會有多個權利?而且每個模塊(可能)都會提供一個綁定到JMX服務器的MBean。 –

3

FlexyPool是數據源的代理,爲幾乎所有已知的連接池更好地監測和故障切換:

  • 的Apache DBCP
  • 阿帕奇DBCP2
  • C3P0
  • BoneCP
  • HikariCP
  • Tomcat CP
  • Vibur DBCP
  • Bitronix事務管理
  • Atomikos公司TransactionsEssentials

它可以讓你監控以下指標:

  • 併發連接數直方圖
  • 併發連接請求直方圖
  • 數據源連接關係取得時間直方圖
  • 連接租約時間直方圖
  • 最大池大小直方圖
  • 總連接關係取得時間直方圖
  • 溢出池大小直方圖
  • 重試嘗試直方圖

這樣你可以調整池的大小,使其可以容納儘可能多的應用程序節點,同時保護您免受某些unexpected traffic spikes的影響。

0

我發現當使用JConsole正如其他答案通過JMX連接到JBoss(5.2)時,連接池的MBean不可見。

取而代之,我使用內置的JMXConsole,通常可在:http://localhost:8080/jmx-console - 您可能必須更改部署的主機名和端口。

如果正在運行,您將看到用戶名和密碼提示。
默認的用戶名/密碼爲:管理員/管理員
我發現我第一次嘗試這樣做,什麼都沒有發生,我不得不更新文件:服務器/默認/ conf目錄/道具/ JMX控制檯用戶。性能並取消2號線:

# A sample users.properties file for use with the UsersRolesLoginModule 
admin=admin 

一旦這樣做,我可以登錄。然後,我選擇了相應的連接池鏈接,例如:name = DefaultDS,service = ManagedConnectionPool它顯示了所有的連接池信息,例如:http://www.dell.com。 AvailableConnectionCount,InUseConnectionCount等。