java.lang.IllegalStateException:无法执行请求; I/O反应器状态:已停止

kna*_*ash 13 apache http apache-httpasyncclient

我有一个服务,预计将以~5或更多请求/分钟执行请求.此服务依赖于Apache AsyncHttpClient.每隔几分钟,客户端遇到一些导致java.lang.IllegalStateException的条件:请求无法执行; I/O反应器状态:已停止.对客户端的所有请求都以相同的异常消息开始失败.重新启动服务后,将重复此循环.

调试此问题非常困难,因为请求执行失败令人惊讶地不会导致回调AsyncResponse 的failed()方法.

从我可以收集的内容中,在HttpCore NIO中修复了HTTPCORE-370,解决了4.3.2中的类似问题.我使用以下版本 - commons-httpclient-3.1.jar httpasyncclient-4.1.1.jar httpcore-4.4.4.jar httpcore-nio-4.4.4.jar

然而,看到这个问题.任何帮助将非常感激.

小智 10

我一直在我的应用程序中处理同样的异常,我终于从这篇文章中找到了一个有用的建议 - http://httpcomponents.10934.n7.nabble.com/IO-reactor-status-STOPPED-td29059.html

您可以使用 I/O 反应器的 #getAuditLog() 方法来准确找出导致它终止的异常。

如果您保留对 ConnectionManager 的 IOReactor 的引用,则可以调用此方法以深入了解实际问题:

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

原来我在自己的代码中做了一些非常愚蠢的事情。但是直到我阅读了审计日志我才弄明白。

  • 你的链接都不起作用 (6认同)