什么是java Web应用程序中的活动会话

时间:2016-10-10 13:25:09

标签: session jira jmx monitor logged

tomcat中的活动会话是什么。我正在尝试监视java Web应用程序的活动会话。但我得到的价值与使用网络应用程序的人数不匹配。你能解释一下吗?

1 个答案:

答案 0 :(得分:0)

基本上,活动会话数是具有唯一jSESSIONID cookie值的现有或以前的浏览器或其他连接的数量。只要有人使用浏览器访问您的网页,就会启动新会话,并为此会话分配唯一​​的JSESSIONID。如果使用相同的JSESSIONID(以cookie或url参数传输)执行下一次命中,则会话计数保持不变。如果未传输参数,则创建新会话。 通常,所有浏览器都会将会话ID cookie保留在多个请求甚至多个选项卡或窗口中(当然,除了隐身标签/窗口外)。

会话数量大于用户数的原因有多种。

  • 会话在tomcat中保留一段时间,默认为2小时。您可以在tomcat设置中更改此金额。因此,如果100个用户在第一个小时登录您的应用程序,并且每秒100个,则即使前100个用户空闲,您的总会话数也将为200。
  • 像谷歌机器人这样的机器人倾向于创造大量的会话。如果您的页面是公开的,请检查访问日志,如果有一些机器人访问您的页面。

  • 如果您的应用程序位于负载均衡器或代理服务器后面,那么这些应用程序会持续不断地进行操作。您的应用程序可用,此ping也可以创建会话。

  • 最后有很多有趣的'您的应用可以从浏览器获取请求的方式,例如搜索结果预取等。
  • 另请注意,会话绑定到网站的域名。因此,如果用户通过多个域连接到您的站点(例如,www.domain.com用于内容,static.domain.com用于图像),则每个连接都将拥有自己的会话。

现在,有不同的方法来防止不需要的会话创建,具体取决于您的确切问题(以及它是否是一个问题)。

  • 如果您的部分应用程序不需要会话,请确保不要在代码中的某处调用request.getSession()。同样在jsp中,您可以使用<%@ page session="false" %>
  • 明确关闭会话
  • 会话超时降低,使它们在tomcat / conf / web.xml中<session-config><session-timeout>30</session-timeout></session-config>更快到期 会话超时值以分钟为单位。

最后,如果您对应用程序中真正发生的事情感兴趣,请为自己设置一个APM(应用程序性能管理)工具,如MoSKito

问候 利昂