2012-12-03 33 views
7

Tôi gặp phải một vấn đề rất lạ với TomEE 1.5.1 và VisualVM 1.7.0_09 trên sư tử núi MAC OSX.VisualVM kết nối với TomEE cục bộ rất chậm và không thể lấy một đống dữ liệu

Sau khi TomEE tải một số ứng dụng web. Sử dụng VisualVM kết nối quá trình TomEE cục bộ mất nhiều thời gian và sau khi kết nối nút gc bị vô hiệu hóa và tôi không thể lấy một vùng lưu trữ. Nhật ký của VisualVM hiển thị một số lỗi.

com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded 
    at sun.tools.attach.BsdVirtualMachine.<init>(BsdVirtualMachine.java:90) 
    at sun.tools.attach.BsdAttachProvider.attachVirtualMachine(BsdAttachProvider.java:63) 
    at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:213) 
    at com.sun.tools.visualvm.attach.AttachModelImpl.getVirtualMachine(AttachModelImpl.java:104) 
Caused: java.io.IOException: Unable to open socket file: target process not responding or HotSpot VM not loaded 

các .java_pid<pid> tập tin không được tạo ra trong thư mục tmp. Nhưng nếu tôi sử dụng VisualVM để kết nối TomEE sau khi khởi động nó và trước khi bất kỳ ứng dụng web nào được tải, tệp .java_pid<pid> sẽ được tạo và VisualVM sẽ kết nối với nó ngay lập tức và các công việc kết xuất đống.

Giải pháp thay thế khác là sửa đổi catalina.sh để thêm tools.jar vào ClassPath và loại bỏ openejb javaagent, sau đó kết nối sau khi TomEE hoàn toàn bắt đầu hoạt động tốt.

Không thể sao chép trên máy ubuntu.

+0

bạn có đang kết nối với JMS không? Hãy thử với JMS. –

+0

Hãy thử jconsole và xem cách hoạt động – javahaxxor

Trả lời

0

Có thể jvm đang hết bộ nhớ. Tôi đã nhìn thấy nó nhiều lần. Thử:

  1. increasing memory limits.
  2. Kết nối VisualVM với jvm.
  3. Triển khai ứng dụng của bạn.
  4. Và chạy bộ nhớ mẫu, lược tả hoặc đống kết xuất để chẩn đoán sự cố. Bạn có thể có rò rỉ bộ nhớ. Heap dump là cách an toàn nhất để đi nếu bạn có vấn đề về bộ nhớ. Bạn cũng có thể take heap dump using command line và phân tích nó trong VisualVM sau.

Cũng đảm bảo hệ thống của bạn không hết bộ nhớ.