问下做过大型项目的高手,出现session使用过多而造成的内存溢出和空指针,应该怎样解决呢?是不是要设置Tomcat的web.xml中
<session-config> 
        <session-timeout>30 </session-timeout> 
</session-config>如果我要在线500人应该将时间设置为多少呢?

解决方案 »

  1.   


    设置<session-timeout>30 </session-timeout>是session的存活期,并不是设置session的大小。
    你可以设置tomcat的内存大小,适度的清理不用的session。来缓解session的大小和内存溢出问题。
      

  2.   

    内存溢出估计是你的tomcat启动选项里,java后面的参数使用的内存不够,一般现在不会有这样的问题的,你手动设置一下就行了。
    关于500人同时在线,这个问题有点难,其实很多大型项目都需要负荷分散的。这样不至于在同一台server上有太多的session。或者你可以考虑缩短session timeout的时间,如果真的是同时的话,用处不大。最主要的一点就是你这个500人在做什么,如果都在查询,都需要把查询结果放在session里面的话,那么我觉得应该采用多台server。否则不是长久之计啊。
      

  3.   

    session不能过多适用,因为session都是在服务器上的
      

  4.   

    和timeout时间没关系,
    一般和java堆栈设定和过渡使用session有关。lz可以查找一下所有使用session的地方。
    如果放了太多东西的话,想办法把他们移出session,
    比如一些数据可以放到form的hidden域里面good luck
      

  5.   

    session 的大小和时间应该没关系的,好像在tomcat里面设置时间吧