Tomcat socket.soKeepAlive 的默认值
Tomcat default value for socket.soKeepAlive
我正在尝试调试与 keep-alives/connection 重置相关的问题,发现 tomcat documentation says:
socket.soKeepAlive:
(bool)Boolean value for the socket's keep alive setting (SO_KEEPALIVE). JVM default used > if not set.
这不是我正在调试的应用程序设置的。有没有办法找出 jvm 使用的默认值? (例如通过检查系统 属性?)
我无法通过检查实际的保持活动行为来测试该行为,因为我无权访问 VM。
根据更多研究和实验自行回答。
socket.soKeepAlive
的默认值:来自 SocketOptions.SO_KEEPALIVE 的 JVM 文档:
The initial value of this socket option is FALSE. The socket option may be enabled or disabled at any time.
另请注意:
When the SO_KEEPALIVE option is enabled the operating system may use a keep-alive mechanism to periodically probe the other end of a connection
据我了解,这意味着 tomcat 不会探测客户端 以检查已建立的连接是否处于活动状态 默认情况下
keepAliveTimeout
的默认值:默认值是使用已为 connectionTimeout 属性设置的值
在我的例子中,这没有被反映出来。 connectionTimeout
设置为 10 秒,但 tomcat 响应仍然保持活动 headers 设置为仅 5 秒。
但是,我发现应用程序作者还将名为 socket.soTimeout
的属性设置为 5 秒,tomcat 将其描述为:
This is equivalent to standard attribute connectionTimeout.
我发现当 conncetionTimeout
和 socket.soTimeout
都设置时,socket.soTimeout
优先,因为更改 socket.soTimeout
值会导致 keep alive [=46] 返回值=] 进行相应更改。
我正在尝试调试与 keep-alives/connection 重置相关的问题,发现 tomcat documentation says:
socket.soKeepAlive:
(bool)Boolean value for the socket's keep alive setting (SO_KEEPALIVE). JVM default used > if not set.
这不是我正在调试的应用程序设置的。有没有办法找出 jvm 使用的默认值? (例如通过检查系统 属性?)
我无法通过检查实际的保持活动行为来测试该行为,因为我无权访问 VM。
根据更多研究和实验自行回答。
socket.soKeepAlive
的默认值:来自 SocketOptions.SO_KEEPALIVE 的 JVM 文档:
The initial value of this socket option is FALSE. The socket option may be enabled or disabled at any time.
另请注意:
When the SO_KEEPALIVE option is enabled the operating system may use a keep-alive mechanism to periodically probe the other end of a connection
据我了解,这意味着 tomcat 不会探测客户端 以检查已建立的连接是否处于活动状态 默认情况下
keepAliveTimeout
的默认值:默认值是使用已为 connectionTimeout 属性设置的值
在我的例子中,这没有被反映出来。 connectionTimeout
设置为 10 秒,但 tomcat 响应仍然保持活动 headers 设置为仅 5 秒。
但是,我发现应用程序作者还将名为 socket.soTimeout
的属性设置为 5 秒,tomcat 将其描述为:
This is equivalent to standard attribute connectionTimeout.
我发现当 conncetionTimeout
和 socket.soTimeout
都设置时,socket.soTimeout
优先,因为更改 socket.soTimeout
值会导致 keep alive [=46] 返回值=] 进行相应更改。