Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat会话未正确清理_Java_Session_Tomcat_Tomcat7 - Fatal编程技术网

Java Tomcat会话未正确清理

Java Tomcat会话未正确清理,java,session,tomcat,tomcat7,Java,Session,Tomcat,Tomcat7,我们遇到了内存泄漏。每当tomcat会话没有正确清理时,就会发生这种情况。我们创建的一个堆转储在会话中显示为2.5GB。日志显示了以下内容: 2016-03-10 19:32:34,976 INFO ContainerBackgroundProcessor[StandardEngine[Catalina]] de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - D50C0D6ADC7A

我们遇到了内存泄漏。每当tomcat会话没有正确清理时,就会发生这种情况。我们创建的一个堆转储在会话中显示为2.5GB。日志显示了以下内容:

2016-03-10 19:32:34,976 INFO ContainerBackgroundProcessor[StandardEngine[Catalina]] de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - D50C0D6ADC7A02B71032E729692D3341.tomcat02 IS REMOVED(sessions.size=101)
2016-03-10 19:32:34,977 INFO ContainerBackgroundProcessor[StandardEngine[Catalina]] de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - F552AF04CCA3E5987CA12B3CA707A65B.tomcat02 IS REMOVED(sessions.size=100)
2016-03-10 19:33:35,456 INFO ContainerBackgroundProcessor[StandardEngine[Catalina]] de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - 9B20DEFCC6AA4B4E83E59D1C9E017EC2.tomcat02 IS REMOVED(sessions.size=99)
2016-03-10 19:33:35,456 INFO ContainerBackgroundProcessor[StandardEngine[Catalina]] de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - A56C5E65C5F4230A3699E5B46BEAA5A7.tomcat02 IS REMOVED(sessions.size=98)
2016-03-10 19:33:35,554 INFO ContainerBackgroundProcessor[StandardEngine[Catalina]] de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - F7419BD927689F359C4FD9E382CECB35.tomcat02 IS REMOVED(sessions.size=97)
2016-03-10 19:33:35,608 INFO ContainerBackgroundProcessor[StandardEngine[Catalina]] de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - 86A2EC35561C2A6F6CC33E9279D8D378.tomcat02 IS REMOVED(sessions.size=96)
2016-03-10 19:33:35,608 INFO ContainerBackgroundProcessor[StandardEngine[Catalina]] de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - AFEC9F52D6552569B0D6E3010D0025F7.tomcat02 IS REMOVED(sessions.size=95)
2016-03-10 19:47:39,831 INFO ajp-bio-8010-exec-4652 de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - 8177FD469930CC8C58A40E1AC05DDF3D.tomcat02 IS REMOVED(sessions.size=121)
2016-03-10 19:47:51,802 INFO ajp-bio-8010-exec-4671 de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - C70F96B181343936D9B763AA8E058462.tomcat02 IS REMOVED(sessions.size=123)
2016-03-10 19:47:52,008 INFO ajp-bio-8010-exec-4672 de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - AB5A52D70167AB73B50BC15F38CCC555.tomcat02 IS REMOVED(sessions.size=124)
2016-03-10 19:48:19,638 INFO ajp-bio-8010-exec-4688 de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - C1171F663AF81155B033090F6A6526F4.tomcat02 IS REMOVED(sessions.size=124)
2016-03-10 19:50:50,764 INFO ajp-bio-8010-exec-4377 de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - A78314AFA1A0864F61FBBC8A3F87DDFC.tomcat02 IS REMOVED(sessions.size=132)
2016-03-10 19:51:12,568 INFO ajp-bio-8010-exec-4555 de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - 34ADDDB2CFF705946160B32B0C3A07E8.tomcat02 IS REMOVED(sessions.size=134)
2016-03-10 19:51:15,115 INFO ajp-bio-8010-exec-4533 de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - 1697EFBFEE37928D77CB82C403FAAB81.tomcat02 IS REMOVED(sessions.size=134)
2016-03-10 19:51:45,837 INFO ajp-bio-8010-exec-4602 de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - BCD0654B34CBEE18AEF8FF72BF13517A.tomcat02 IS REMOVED(sessions.size=139)
2016-03-10 19:53:14,098 INFO ajp-bio-8010-exec-4603 de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - 62FCB3CBF8F923F0005BD77CB1658B98.tomcat02 IS REMOVED(sessions.size=159)
2016-03-10 19:58:36,482 INFO ajp-bio-8010-exec-4574 de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - 8CD74088FAB550870ECB6242B1A0DEEC.tomcat02 IS REMOVED(sessions.size=194)
2016-03-10 19:58:54,167 INFO ajp-bio-8010-exec-4601 de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - FC91875E280724BD1397D4BC7ED80CF8.tomcat02 IS REMOVED(sessions.size=196)
2016-03-10 19:59:04,894 INFO ajp-bio-8010-exec-4709 de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - BEF4DF2EDC5217370679B6C9F06D8BA3.tomcat02 IS REMOVED(sessions.size=197)
2016-03-10 19:59:35,716 INFO ajp-bio-8010-exec-4723 de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - 0B5CB30250F81D0AFFAA479E13501DD4.tomcat02 IS REMOVED(sessions.size=205) 
。。。 过了一段时间,我们将面临大约2k的会话,而这些会话只属于50个用户

2016-03-10 23:59:36,641 INFO ajp-bio-8010-exec-5973 de.projekt.application.SessionListener.sessionDestroyed(150) - SESSION_DESTROYED - 1B086A93D55A748D3E8769A957A06FD0.tomcat02 IS REMOVED(sessions.size=1518)
在ContainerBackgroundProcessor[StandardEngine[Catalina]]线程调用SessionListener之前,这些会话的清理一直在工作。 突然,该线程不再调用SessionListener。相反,它被ajp bio线程调用,会话量正在增加

有人能解释一下为什么ajp bio线程突然调用SessionListener而不是ContainerBackgroundProcessor[StandardEngine[Catalina]]线程吗

卡塔利纳目前没有例外。tomcat也拥有足够的内存

--编辑--

web.xml

<session-config>
<session-timeout>30</session-timeout>
<tracking-mode>COOKIE</tracking-mode>
</session-config>

30
曲奇

您应该配置web.xml,以便会话在指定时间后自动过期。在这种情况下,将不会有孤立会话

您应该配置web.xml,以便会话在指定时间后自动过期。在这种情况下,将不会有孤立会话

因为会话配置在30分钟后超时,您需要测试WebApp,并确保如果有1个用户登录,则只创建了1个会话。 如果有多个会话,则需要跟踪正在创建更多会话的代码/实体。
注意:会话可以通过编程方式创建,因此请检查您的代码是否在其他地方执行此操作。

由于您的会话配置在30分钟后超时,您需要测试WebApp,并确保如果有1个用户登录,则只创建1个会话。 如果有多个会话,则需要跟踪正在创建更多会话的代码/实体。
注意:会话可以通过编程方式创建,因此请检查您的代码是否在其他地方执行。

您应该配置web.xml,以便会话在指定时间后自动过期。在这种情况下,将不会有孤立会话会话超时可以在web.xml中配置,也可以在代码中重写。确实没有覆盖web.xml值吗?@BalajiKrishnan在某些情况下(注销等),值maxInactiveInterval设置为1。堆转储中的所有SessionObject都将maxInactiveInterval设置为1或1800,并且最近访问的时间是数小时前。您的workers.properties/ajp config看起来如何?这可能是路由问题。@Stefan我们没有ajp的配置文件。这是server.xml中的一行,我们是否错过了配置?您应该拥有配置web.xml,以便会话在指定时间后自动过期。在这种情况下,将不会有孤立会话会话超时可以在web.xml中配置,也可以在代码中重写。确实没有覆盖web.xml值吗?@BalajiKrishnan在某些情况下(注销等),值maxInactiveInterval设置为1。堆转储中的所有SessionObject都将maxInactiveInterval设置为1或1800,并且最近访问的时间是数小时前。您的workers.properties/ajp config看起来如何?这可能是路由问题。@Stefan我们没有ajp的配置文件。这是server.xml中的一行,我们是否错过了配置?会话超时已设置为30分钟。我已经将会话配置添加到我的帖子中。是否有任何ajax调用在后台命中?会话超时已设置为30分钟。我已经在我的帖子中添加了会话配置。是否有ajax调用在后台运行?