Vic*_*tor 49 java sockets tomcat timeout socket-timeout-exception
我有一个基于tomcat的Web应用程序.我间歇性地得到以下异常,
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:532)
at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:501)
at org.apache.coyote.http11.InternalInputBuffer$InputStreamInputBuffer.doRead(InternalInputBuffer.java:563)
at org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:124)
at org.apache.coyote.http11.AbstractInputBuffer.doRead(AbstractInputBuffer.java:346)
at org.apache.coyote.Request.doRead(Request.java:422)
at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:290)
at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:431)
at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:315)
at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:200)
at java.nio.channels.Channels$ReadableByteChannelImpl.read(Channels.java:385)
Run Code Online (Sandbox Code Playgroud)
不幸的是我没有访问客户端,所以我只是想确认这可能发生的各种原因,
服务器正在尝试从请求中读取数据,但其占用的时间超过了从客户端到达的数据的超时值.这里的超时通常是tomcat连接器 - > connectionTimeout属性.
客户端具有读取超时设置,并且服务器花费的时间比响应时间长.
我经历过的其中一个线程表示,这可能发生在高并发性和启用了keepalive的情况下.
对于#1,我设置的初始值是20秒,我已经将其提高到60秒,将测试并查看是否有任何更改.
同时,如果你们中的任何一个人能就此提供专家意见,那将非常有帮助.或者就此而言,您可以想到哪个可能导致此问题.
提前致谢.
玉萍
use*_*421 38
服务器正在尝试从请求中读取数据,但其占用的时间超过了从客户端到达的数据的超时值.这里的超时通常是tomcat连接器 - > connectionTimeout属性.
正确.
客户端具有读取超时设置,并且服务器花费的时间比响应时间长.
不会.这会导致客户端超时.
我经历过的其中一个线程表示,这可能发生在高并发性和启用了keepalive的情况下.
这显然是猜测,完全不正确.当且仅当超时内没有数据到达时才会发生这种情况.期.加载和保持活动以及并发与它无关.
这只是意味着客户端没有发送.你不必担心它.浏览器客户端以各种奇怪的方式进出.
以下是基本说明:-
%CATALINA_HOME%/conf/server.xml)下的“conf”文件夹中找到“server.xml”文件。<Connector.protocol="HTTP/1.1".connectionTimeout在连接器上设置了一个值,则可能需要增加它 - 例如从 20000 毫秒(= 20 秒)到 120000 毫秒(= 2 分钟)。如果connectionTimeout连接器上没有设置属性值,默认值为 60 秒 - 如果这不够,可能需要添加属性。| 归档时间: |
|
| 查看次数: |
272119 次 |
| 最近记录: |