2016-02-11 27 views
6

Tôi có một dịch vụ dự kiến ​​sẽ thực hiện các yêu cầu ở ~ 5 yêu cầu trở lên/phút. Dịch vụ này phụ thuộc vào Apache AsyncHttpClient. Sau mỗi vài phút, khách hàng truy cập một số điều kiện gây ra java.lang.IllegalStateException: Yêu cầu không thể được thực thi; Trạng thái lò phản ứng I/O: STOPPED. Tất cả các yêu cầu cho khách hàng bắt đầu thất bại với cùng một thông báo ngoại lệ. Sau khi khởi động lại dịch vụ, chu kỳ này lặp lại. Nó thực sự là khó khăn để gỡ lỗi vấn đề này là thất bại thực hiện yêu cầu đáng ngạc nhiên không gây ra một cuộc gọi lại đến thất bại() phương pháp của AsyncResponse.java.lang.IllegalStateException: Yêu cầu không thể được thực thi; Trạng thái lò phản ứng I/O: STOPPED

Từ những gì tôi có thể thu thập, đã có bản sửa lỗi HTTPCORE-370 trong HttpCore NIO giải quyết được sự cố tương tự trong 4.3.2. Tôi đang sử dụng phiên bản sau - commons-httpclient-3.1.jar httpasyncclient-4.1.1.jar httpcore-4.4.4.jar httpcore-nio-4.4.4.jar

Tuy nhiên, khi nhìn thấy vấn đề này. Mọi trợ giúp sẽ thực sự được đánh giá cao.

+0

Thay vì muộn, bạn có tìm thấy giải pháp cho vấn đề này không? – dav1d

Trả lời

0

Tôi đã làm việc với cùng một ngoại lệ này trong ứng dụng của tôi, và cuối cùng tôi đã tìm thấy một gợi ý hữu ích từ bài này - http://httpcomponents.10934.n7.nabble.com/I-O-reactor-status-STOPPED-td29059.html

Bạn có thể sử dụng phương pháp #getAuditLog() của I/O lò phản ứng tìm hiểu chính xác ngoại lệ nào khiến nó chấm dứt.

Nếu bạn giữ một tham chiếu đến IOReactor của ConnectionManager, bạn có thể gọi phương thức này để có được cái nhìn sâu sắc vào các vấn đề thực tế:

http://hc.apache.org/httpcomponents-core-4.4.x/httpcore-nio/apidocs/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.html#getAuditLog()

Hóa ra tôi đang làm một cái gì đó vô cùng ngu ngốc trong mã của riêng tôi . Nhưng tôi không thể tìm ra cho đến khi tôi đọc nhật ký kiểm tra.

+0

wo có cùng vấn đề, bạn có thể chia sẻ với bạn lý do không? – afei

+0

Vấn đề của tôi phải liên quan đến logic kinh doanh của mã của tôi. Đó là một tình huống mà tôi đã cố gắng để ngăn chặn cùng một Google Guava StopWatch hai lần. Những gì bạn tìm thấy trong nhật ký kiểm tra của IOReactor có thể là một cái gì đó rất cụ thể đối với mã bạn đã viết. – Madpony

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