Tôi đã kiểm tra kỹ những điều sau:Làm thế nào tôi có thể theo dõi Tomcat với jvisualvm, hiển thị visualgc?
- Tôi đang chạy jvisualvm trên cùng một hộp nơi Tomcat đang chạy.
- Đây là Java 6u19.
- Dịch vụ Tomcat của tôi đang chạy với tư cách người dùng giống như tôi đã đăng nhập.
- Dịch vụ Tomcat của tôi đang sử dụng đúng thư mục JVM mà tôi đang sử dụng jvisualvm.
- Tomcat đã bật JMX trên một cổng cụ thể, nhưng tôi không nghĩ rằng điều này sẽ giúp tôi.
Với tất cả điều này, tôi làm xem quy trình Tomcat của tôi trong danh sách "Địa phương" cho jvisualvm. Nó được hiển thị là "< Ứng dụng không xác định> (pid 5644)". Nếu tôi nhấp đúp vào nó, thì mỗi tab sẽ hiển thị "Không được hỗ trợ cho JVM này". Tuy nhiên, VisualVM được hiển thị trong "Local" và tất cả các tab làm việc cho nó, rõ ràng là sử dụng cùng một cá thể JVM. Không có cách nào rõ ràng để thêm kết nối JMX vào ví dụ "< Unknown Application>".
Tôi thấy trường hợp JMX của Tomcat trong "Local" là "localhost: (số cổng của tôi)", và điều này hoạt động, nhưng tab Visual GC hiển thị "Không được hỗ trợ cho JVM này", mà tôi giả định có nghĩa là Visual GC không hoạt động thông qua JMX.
Tôi đang làm gì sai? Tôi đã thử bắt đầu jstatd. Nó không có sự khác biệt. Khi tôi bắt đầu jstatd, sau đó visualvm thấy một "địa phương" "jstatd" nhưng khi tôi nhấp đúp vào nó, nó chỉ có vẻ như theo dõi quá trình jstatd và không phải bất kỳ quá trình Java khác.
LƯU Ý: Tôi đã quyết định thử chạy Tomcat không phải là dịch vụ nhưng trực tiếp trong cửa sổ CMD và viola, giờ đây visualvm hoạt động hoàn hảo. Tôi nghĩ rằng tôi sẽ thử điều này khi tôi chạy "jps" và nhận được khiếu nại "quá trình thông tin không có sẵn" và Googled cho điều đó và tìm thấy một người nói rằng họ đã nhận này khi họ chạy bất kỳ ứng dụng Java như một dịch vụ. Điều này giúp trong một testbed, nhưng không giúp tìm ra cách để theo dõi một hệ thống sản xuất.
này được Tomcat chạy như một dịch vụ Windows dưới wrapper Tanuki trên Windows Server 2003.