【问题标题】:Java - Shorter session timeout for low "used time"Java - 较短的“使用时间”会话超时
【发布时间】:2016-10-06 13:17:00
【问题描述】:

我有一个 Java Web 应用程序部署到 Tomcat。在我的 web.xml 中,我指定了最大空闲超时。但是,我们通过 ping 多个页面并检查 200 响应来监控此 Web 应用程序的正常运行时间。每个 ping 都会启动一个会话,并且每隔几秒就会有多个 ping,我们会收集大量会话。

这些会话最终会超时,但我希望尽快删除它们。

在 Tomcat 的“会话管理”页面中,我可以很容易地分辨出哪些属于这一类。他们的“非活动时间”大于几秒钟,但他们的“使用时间”是 00:00。这就是说,他们只提出了一个请求,而没有返回提出另一个请求。

问题

有什么方法可以在不影响用户的情况下使这些非活动的单个请求超时?

其他信息

  • 我们的会话超时当前设置得相当高,超过一个小时。客户最清楚 =)
  • 我们的 Web 框架主要基于 AJAX,因此对于真正的用户来说,没有后续请求的可能性很小。
  • 据我们所知,我们无法从监控工具方面控制会话处理。

【问题讨论】:

    标签: java session tomcat


    【解决方案1】:

    我的头顶:

    1. 使用相同的会话 - 发出初始请求并保存会话 ID,然后使用该 ID 发出每个后续请求。
    2. ping 时发送一个特殊的标头(例如X-Invalidate-Session)。实现一个过滤器,在请求后立即使会话失效。
    3. 测量有无“ping”请求的性能。如果没有显着差异,请不要担心。

    我想说这个问题对于 SO 来说太宽泛了,因为肯定有更多的可能性来解决这个问题。

    【讨论】:

      猜你喜欢
      • 2014-10-18
      • 2016-03-19
      • 2018-07-05
      • 2013-09-20
      • 2016-08-10
      • 1970-01-01
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多