在Tomcat的文档中,系统属性的定义org.apache.catalina.session. StandardSession.ACTIVITY_CHECK
如下:
如果为真,Tomcat 将跟踪每个会话的活动请求数。在确定会话是否有效时,任何至少有一个活动请求的会话都将被视为有效。
我在文档中找不到“活动请求”的定义。这是否意味着“非空闲”,即请求不早于minIdleSwap
?
另外,上面的引文中,“有效会话”似乎意味着“活动会话”。这两个术语对于 Tomcat 来说是同义词吗?我认为“有效”意味着会话既未过期也未明确失效。这与活动无关。
我可以就术语(主动请求、主动会话、有效会话)获得一些指导吗?
答案1
“活动请求”是指 Tomcat 当前正在处理的请求。
“有效会话”是指尚未过期的会话。
“活动会话”(如果使用)的意思与“有效会话”相同。
Servlet 规范将会话的最后访问时间定义为最后一次请求的时间已收到与会话相关的请求。如果您的请求运行时间很长,而会话超时时间很短,则可能会出现会话超时的情况,而与之相关的请求仍在处理中。这并不像听起来那么不合理。考虑通过慢速链接下载/上传大文件。
StandardSession.ACTIVITY_CHECK
是为了避免这种极端情况而添加的。
如果StandardSession.ACTIVITY_CHECK
设置了,并且至少有一个与会话关联的请求正在被处理,Tomcat 将永远不会使会话过期。