2012-06-26 23 views
5

Có bất kỳ điều gì tương tự như xuất khẩu Spring JMX không ở đó KHÔNG CÓ bằng cách sử dụng khung công tác Spring?Khuôn khổ xuất khẩu JMX tương tự như xuất khẩu Spring JMX

SimpleJMX có vẻ hợp lý nhưng dường như cũng là một khuôn khổ rất trẻ chỉ được một người duy nhất.

Tôi cần phơi bày toàn bộ các thuộc tính, phương thức và lớp học như JMX nhưng không muốn fiddle với API JMX và viết tấn giao diện JMX.

Và không có cách nào để giới thiệu Spring trong dự án (chỉ trong trường hợp bạn yêu cầu). Bất kỳ gợi ý hoặc ý tưởng nào được đánh giá cao :-)

Trả lời

2

Ok, tôi đã nhanh chóng đánh giá SimpleJMXJMXUtils. Cả hai đều hoạt động như mong đợi và rất giống với xuất khẩu Spring JMX. Tuy nhiên, tôi thấy JMXUtils dễ sử dụng hơn trong trường hợp của tôi.

Với JMXUtils, việc đăng ký/hủy đăng ký MBeans thành một máy chủ mbean nền tảng đã bắt đầu rất dễ dàng. Trong trường hợp của tôi, tôi đã sử dụng GlassFish V3 làm máy chủ ứng dụng và tôi không muốn bắt đầu một Máy chủ MBean khác chỉ cho mbeans của riêng tôi. Theo như tôi có thể thấy API của SimpleJMX không cho phép điều này và bạn buộc phải bắt đầu một MBeanServer khác bằng cách sử dụng API SimpleJMX và đăng ký mbeans đã tạo (rất dễ dàng với API) hoặc bạn bắt đầu không quan tâm đến việc thử để đăng ký mbeans vào máy chủ mbean nền tảng. Sau đó là một chút phức tạp hơn và do đó tôi quyết định sử dụng JMXUtils.

Nhược điểm của JMXUtils là thao tác của tên bean. SimpleJMX sử dụng các thuộc tính trong các chú thích (domainName, beanName) rất hữu ích nhưng với JMXUtils bạn phải biết cú pháp để đặt tên mbeans khi sử dụng các tên miền mbean. Tất cả trong tất cả không phải là một việc lớn nhưng đối với hương vị của tôi, SimpleJMX có giải pháp tốt hơn cho việc này.

Điểm mấu chốt là cả hai thư viện đều tuyệt vời và thực hiện công việc của mình. Tôi quyết định sử dụng JMXUtils.

+0

Đối với hồ sơ, SimpleJMX không cho phép bạn sử dụng máy chủ nền tảng mbean. – Gray

2

Tôi cam trên org.weakref.jmxutils thư viện ở commons-dbcp-jmx. Hãy xem ManagedBasicDataSource.java để biết ví dụ:

@Managed(description = "The current number of active connections that have been allocated from this data source.") 
public synchronized int getNumActive() { 
    return super.getNumActive(); 
} 

Tôi chưa từng sử dụng thư viện đó, nhưng có vẻ hiệu quả.

+0

Cảm ơn Tomasz. Điều này nghe rất hữu ích. Tôi sẽ thử và so sánh nó với SimpleJMX. Có vẻ như JMXUtils được duy trì bởi một người duy nhất nhưng hoạt động trên github. Vì vậy, ít nhất có ARE lựa chọn thay thế ra khỏi đó :-) – qupera

Các vấn đề liên quan