相关疑难解决方法(0)

如果20秒内没有任何活动,tomcat会超时?

如果我设置 tomcat 并从中传输静态文件,我注意到如果客户端从该套接字“暂停”(停止接收)超过 20 秒,那么 tomcat 似乎会任意切断连接(即使请求 URI 标头具有已收到且连接仍处于“已连接”状态 [客户端仍处于活动状态])。什么配置参数控制这个?文档提到但仅与初始标头解析和读取请求正文有关,而不是读取服务器的响应[connectionTimeout?]这里是否发生某种不活动超时?

它是可重现的,从任何 tomcat 应用程序流式传输(大)静态文件,并通过暂停的客户端接收它,例如 test.rb:

require "socket"
host = "localhost"
port = 8080
socket = TCPSocket.new host,port
url = "/your_webapp/large_static_filename.ext"
request = "GET #{url} HTTP/1.0\r\nHost:#{host}\r\n\r\n"
socket.print request
puts "reading"
response = socket.sysread 1_000_000
puts response.length
puts response[0..300]
puts "sleeping 25" # with 10s or several reads separated by 10s, it is OK
sleep 25
response2 = socket.read
# this should equal the total size, but doesn't... …
Run Code Online (Sandbox Code Playgroud)

java sockets tomcat

4
推荐指数
1
解决办法
5026
查看次数

标签 统计

java ×1

sockets ×1

tomcat ×1