这个问题好像已经被公认了,你可以百度下.确实存在,web应用的重加载确实有内存泄露,
尤其是在类的内部使用static内部类,更为严重,以前看金蝶中间件的高人有文章阐述过.
尤其是在类的内部使用static内部类,更为严重,以前看金蝶中间件的高人有文章阐述过.
解决方案 »
- 求助:关于POI中的插入数据问题?谢谢!在线等.......
- 正则表达式问题
- jsoup 抓取不到隐藏网页内容.
- 求解释一下MVC模式中FormBean里的Reset和构造函数的执行过程,外加一个问题,在线等
- 请问大家都是怎样使用hibernate的?gui的生成工具都那么难用
- 配置eclipse3.0和tomcat,还需请问,我是不是需要把lomboz3.0解压在那个目录地下,都是怎末配置,请高手解答 !
- JSP 分页 有正确可行的就结贴
- tomcat的问题?
- CMP执行Finder方法出错,寻求帮助!紧急,谢谢!
- java无法生成结果集为空,生成可滚动结果集有问题
- struts跳转到html框架某一部分的问题,大家帮帮忙,谢谢!!!!
- 超简单的JAVA问题2
都有类似问题,
每次reload内存都不断增加,直到最大值就out of memory我观察过,每次reload到生成sessionFactory那步后,内存就增加10mb,但是close掉sessionFactory,并且执行sessionFactory=null,内存也不会减少,说明close掉sessionFactory内存也不会释放另外还有别的内存问题,应该时spring加载application.xml中那些类没有释放,看了网上的一些解决方案,加了spring的一个listener,也没有解决,现在真是被这些东西搞烦了.
希望楼主加分,以吸引更多的人来讨论一下,密切关注此问题。
reload而不是重启服务器有两个原因,
第一:在调试阶段,reload比重启服务器要快一些,调试的时候经常更新类是很正常的,每更新一次都会reload,如果是重启服务器很浪费时间第二:在发布使用以后,如果每次更新都要重启服务器会造成一些问题,比如这个服务器上并不只是你一个运用,有很多运用,如果就因为你一个运用就重启服务器,其它运用都会受影响.
我是用struts的插件在运用启动的时候初始化sessionFactory的,
然后在实际运用的时候,自己写了一个HibernateUtil类,类中也声明了一个sessionFactory的静态变量,这个静态变量重context中取值,也就是在hibernate的配置文件中配置的hibernate-connection-session-factory,实际上也就是在插件中初始化的那个sessionFactory,
会不会是这个地方也有对它的引用,造成内存没有释放?
但现在问题不是这样,tomcat只是本机调试的时候用的,实际生产中用的是weblogic8(和tomcat存在同样的问题),而且生产系统是要7*24运作的,隔三岔五的重启一下会让产线的人叫嚷,客户会不满意的.国庆我都在研究这个问题,准备用jprobe查一下.
是struts+hibernate,很小的程序,在测试的时候就出现这样的问题
使用spring的防治内存溢出的 filter就好了
我在最开始都说明了,没有用通常的那种spring的方式和hibernate结合,是自己做了一个插件在struts中初始化hibernate的,hibernate的配置文件还是用的hibernate的配置文件。另外spring的内存溢出那是另外一回事了,我在项目中把spring的配置文件都去掉了,还是一样的有上面说的内存溢出的问题。这说明这个溢出和spring没有关系。
另外现在看到论坛上很多回复别人的帖子都是直接就说用Awake框架,似乎Awake包治百病一样,广告味太重。