Chúng tôi đang đối mặt với một vấn đề bất thường trong ứng dụng của chúng tôi, trong một tháng qua ứng dụng của chúng tôi đã đạt đến trạng thái không thể phục hồi.Kết xuất chuỗi hiển thị trạng thái Runnable, nhưng nó bị treo trong một thời gian khá dài
Bối cảnh: Ứng dụng của chúng tôi thực hiện truy vấn DB để tìm nạp một số thông tin và Cơ sở dữ liệu này được lưu trữ trên một nút riêng biệt.
Trường hợp có vấn đề: Khi kết xuất chuỗi được phân tích, chúng ta thấy tất cả các luồng nằm trong trạng thái runnable lấy dữ liệu từ cơ sở dữ liệu, nhưng nó không hoàn thành ngay cả sau 20 phút.
Đăng khởi động lại ứng dụng như mong đợi tất cả các chuỗi được khôi phục. Và việc sử dụng CPU cũng bình thường.
Dưới đây là thread bãi
ThreadPool: 2: 47" PRIO = 3 tid = 0x0000000007334000 nid = 0x5f Runnable [0xfffffd7fe9f54000] java.lang.Thread.State: Runnable tại oracle.jdbc. driver.T2CStatement.t2cParseExecuteDescribe (Native Method) tại oracle.jdbc.driver.T2CPreparedStatement.executeForDescribe (T2CPreparedStatement.java:518) tại oracle.jdbc.driver.T2CPreparedStatement.executeForRows (T2CPreparedStatement.java:764) tại ora
All threads in the same state.
Câu hỏi:
- những gì có thể là lý do cho tình trạng này?
- cách khôi phục trong trường hợp này?
bạn có thể kiểm tra sử dụng chủ đề bãi phân tích http://mchr3k.github.com/javathreaddumpanalyser/ – GustyWind
Bạn đã bao giờ tìm một giải pháp cho việc này? Tôi gặp vấn đề tương tự, và nó lặp lại vài tuần một lần/tháng. – Kayaman
Bạn chắc chắn rằng một đường ống đã không phá vỡ một nơi nào đó? –