2011-11-23 14 views
8

Tôi cần có thông tin chi tiết về việc giám sát hồ bơi kết nối trong ứng dụng web của mình.
Các thông số kỹ thuật về ứng dụng được đề cập dưới đây:Giám sát hồ bơi kết nối

  1. Application Server - JBoss Application Server
  2. Cơ sở dữ liệu - Oracle 10g
  3. Back-end - Hibernate

Tôi cần phải biết rằng các cách khác nhau để giám sát hồ bơi kết nối là gì và chúng ta có thể làm như thế nào. Cho dù thông qua Hibernate hoặc thông qua JBoss hoặc cách nào khác? Hãy gợi ý cho tôi đúng cách để làm điều đó.

Trả lời

3

Đây có thể không phải là điều bạn muốn. Nhưng bạn đang sử dụng cái gì cho hồ bơi? Nếu bạn chưa quyết định, hãy kiểm tra C3PO, nó cung cấp JMX tiếp xúc với các thuộc tính để theo dõi

9

Đối với một máy chủ ứng dụng bên java điển hình, một trong những cách được ưa thích nhất của giám sát là thông qua việc JMX. Hầu hết các ứng dụng (bao gồm cả các hồ bơi kết nối) cung cấp một mặc định JMX đậu (được gọi là MBeans hoặc quản lý đậu) có thể được sử dụng để theo dõi. Một nhóm kết nối (ví dụ C3P0) tạo một MBean liên kết nó với máy chủ JMX có sẵn bên dưới (có sẵn trong hầu hết tất cả các máy chủ ứng dụng bao gồm cả tomcat, JBoss)

MBean này sẽ giữ tất cả thông tin về kết nối hồ bơi. Bạn đã đề cập bạn đang sử dụng máy chủ JBoss. Trên bảng điều khiển dành cho quản trị viên web do Jboss cung cấp, có nên là một điều khoản để xem tất cả các MBeans (bao gồm MBean của hồ bơi Kết nối được triển khai).

Một cách khác để giám sát là mặc dù tiện ích JConsole đi kèm với Java. Cùng một JConsole có thể được sử dụng để monitor the JBoss AS là tốt.

+0

Cách sử dụng JConsole để theo dõi hồ bơi DBCP. Tôi bị mất !!Bất kỳ trợ giúp hoặc hướng dẫn nào để chỉ cho tôi đúng hướng. Tôi đang sử dụng java 5 và Tomcat 5. – Mubasher

+1

DBCP không hỗ trợ JMX ra khỏi hộp. Nhưng có cách để làm điều đó. Kiểm tra liên kết này. http://www.nurkiewicz.com/2011/12/enabling-jmx-in-hibernate-ehcache-qurtz.html – Santosh

+0

Có vẻ như chính xác hơn khi nói rằng một mô-đun (hoặc lớp) của một ứng dụng sẽ cung cấp một MBean mặc định. ..không có một MBean cho ứng dụng. Sẽ có nhiều quyền? Và mỗi mô-đun sẽ (có khả năng) cung cấp một MBean liên kết với Máy chủ JMX. –

3

FlexyPool là một proxy nguồn dữ liệu cung cấp giám sát tốt hơn và failover cho bể bơi kết nối hầu hết các tiếng:

  • Apache DBCP
  • Apache DBCP2
  • C3P0
  • BoneCP
  • HikariCP
  • Tomcat CP
  • Vibur DBCP
  • Bitronix giao dịch quản lý
  • Atomikos TransactionsEssentials

Nó cho phép bạn theo dõi các chỉ số sau:

  • kết nối đồng thời histogram
  • yêu cầu kết nối đồng thời histogram
  • kết nối nguồn dữ liệu thu thập biểu đồ thời gian
  • kết nối thời gian thuê histogram
  • hồ bơi kích thước tối đa histogram
  • tổng kết nối thời gian mua histogram
  • tràn kích thước hồ bơi histogram
  • lần thử lại cố gắng histogram

Bằng cách này bạn có thể điều chỉnh kích thước hồ bơi để nó có thể chứa nhiều nút ứng dụng nhất có thể trong khi bảo vệ bạn khỏi một số unexpected traffic spikes.

0

Tôi thấy rằng khi sử dụng JConsole như được đề xuất trong các câu trả lời khác để kết nối với JBoss (5.2) qua JMX, MBeans cho Kết nối tổng hợp không hiển thị.

Thay vào đó, tôi đã sử dụng được xây dựng trong JMXConsole thường có sẵn tại: http://localhost:8080/jmx-console - bạn có thể phải thay đổi tên máy chủ và cổng cho triển khai của mình.

Nếu điều này đang chạy, bạn sẽ thấy lời nhắc tên người dùng và mật khẩu.
Tên người dùng default/mật khẩu là: admin/admin
tôi thấy lần đầu tiên tôi đã cố gắng này, không có gì xảy ra, tôi đã để cập nhật các file: máy chủ/default/conf/props/jmx-console-người sử dụng. các thuộc tính và bỏ ghi chú dòng thứ hai:

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

Khi đã hoàn tất, tôi có thể đăng nhập. Tại thời điểm đó trong ObjectName Filter Tôi đã nhập: jboss.jca: * Sau đó, tôi đã chọn liên kết nhóm kết nối thích hợp ví dụ: name = DefaultDS, service = ManagedConnectionPool hiển thị tất cả thông tin về kết nối, ví dụ: AvailableConnectionCount, InUseConnectionCount, v.v.