经过长时间运行的事务后,我在服务器上的HTTP连接遇到了一些麻烦。下一个请求将导致异常 java.net.SocketException:服务器中的文件意外结束。
如果我从客户端关闭Apache HTTP服务器或JVM上的保持活动,效果很好。
设置:
会发生什么?
...other stuff...
13:39:32.018 Do Rest call
13:39:32.111 Rest call return headers: Keep-Alive=[timeout=60, max=97], Connection=[Keep-Alive]
13:39:32.609 Do Rest call
13:39:33.849 Rest call return headers: Keep-Alive=[timeout=60, max=96], Connection=[Keep-Alive]
13:39:33.869 Do Rest call
...LONG RUNNING TRANSACTION...
13:40:05.828 Rest call return headers: Keep-Alive=[timeout=60, max=95], Connection=[Keep-Alive]
13:40:05.833 Do Rest call -> _java.net.SocketException: Unexpected end of file from server_; no trace in any log file on the server for this request
我不知道是什么原因导致了连接断开。我无法在任何服务器日志中找到最后一个失败的rest调用。知道是什么还是我可以做些什么来进一步隔离问题?
答案 0 :(得分:-1)
服务器端设置了连接超时,因此我们的保持连接将在分配的时间后超时,从而导致间歇性错误。
去掉keep-alive再试试