1

我在我们的生产设置中遇到了以下异常。下面是痕迹,

引起:java.net.SocketException:连接重置

at java.net.SocketInputStream.read(SocketInputStream.java:189)
    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)

下面是tomcat的配置细节。

  1. 连接器 - BIO
  2. 最大线程数 - 100
  3. 接受计数 - 20000

我在网络上遇到的最常见情况是客户端在服务器响应之前关闭连接。然而,这里似乎并非如此。我只是想尝试了解为什么会这样。我一直试图在没有太多运气的情况下重现这一点。

已经尝试了几件事,

  1. 在服务器代码中设置一个断点,从客户端命中,等待一分钟(> 20000)然后运行它完成。这里没有错误。
  2. 在服务器代码中设置断点。从客户端代码命中,它在服务器断点处停止,然后我停止/关闭客户端并让服务器代码运行完成,这也没有导致任何错误。

关于如何在本地重现此问题的任何想法。

谢谢,

维姬

4

0 回答 0