hiberate+spring+struts+c3p0 产生的非常怪异的问题
(1)hiberate+spring+c3p0,WEB容器是tomcat,监控工具是jprofiler,在本地进行批量数据导入时,内存上升到一定的高度,就会有大幅度的GC现象,tomcat运行正常.但是在服务器上,就没有大幅度的GC现象,直到tomcat运行很慢,崩溃为止,也不报任何的内存溢出异常.
(2)对于(1)的问题,大家有没有遇见过,是不是服务器的运行速度太快,而本地的测试速度跟服务器的没法比的原因.还是其它原因?
(3)对于(1)的问题,是不是c3p0引起的?我查看了数据库连接数是很正常的. 工作中,急.
问题补充:
两个tomcat是一样的.
但是,我怀疑是hiberante产生的一些对象没办法释放.
我在web.xml里面设置了
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
然后,这个是我的一些代码...是Spring管理的service方法
save*()
get*()
upate*()
然后,批量插入的时候,我是调用save*()方法直接插入的,调用一次,就插入一条记录.就算是没有做批处理,做其它的spring管理的service业务方法,当tomcat运行了一段时间也会倒掉.内存溢出.
不过,如果使用不是spring管理的service方法,当监控内存的时候,就不会有内存溢出的现象.
(1)hiberate+spring+c3p0,WEB容器是tomcat,监控工具是jprofiler,在本地进行批量数据导入时,内存上升到一定的高度,就会有大幅度的GC现象,tomcat运行正常.但是在服务器上,就没有大幅度的GC现象,直到tomcat运行很慢,崩溃为止,也不报任何的内存溢出异常.
(2)对于(1)的问题,大家有没有遇见过,是不是服务器的运行速度太快,而本地的测试速度跟服务器的没法比的原因.还是其它原因?
(3)对于(1)的问题,是不是c3p0引起的?我查看了数据库连接数是很正常的. 工作中,急.
问题补充:
两个tomcat是一样的.
但是,我怀疑是hiberante产生的一些对象没办法释放.
我在web.xml里面设置了
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
然后,这个是我的一些代码...是Spring管理的service方法
save*()
get*()
upate*()
然后,批量插入的时候,我是调用save*()方法直接插入的,调用一次,就插入一条记录.就算是没有做批处理,做其它的spring管理的service业务方法,当tomcat运行了一段时间也会倒掉.内存溢出.
不过,如果使用不是spring管理的service方法,当监控内存的时候,就不会有内存溢出的现象.
解决方案 »
- IE中的<UL>问题。希望大神能出面解释,在此谢谢了
- (急急急)网站发布上去后,服务器每隔一段时间就崩掉。。。求解决方案
- hibernate 的二级缓存
- struts action中为什么没有mapping.findforward()方法?
- 在MYECLIPSE中没办法影射成spring dao?急
- 关于四级级联菜单
- spring1.2.7+hibernate3 处理blob出错,帮帮忙!
- 一个很easy的问题:如何在jboss部署.ear?
- 帮我修改个 java scpit 很短 7句 在线等中
- j2ee是什么东西?怎么才叫j2ee?
- 请高手指教和Web Service平行的还有哪些方案??急等!!!
- Hibernate返回对象数据怎么在页面上显示
在数据导入是应该一部分一部分的导入,每完成一部分就把你保存数据的数据结构或者对象显式的赋空 (你的Object = null;)
这样垃圾回收器就会及时的清除了