论坛首页 入门讨论版 Spring

spring mvc +hibernate 内存不断增加

浏览 1023 次
该帖已经被评为新手帖
作者 正文
最后更新时间:2007-12-04

我用spring+hibrenate框架做了一办公OA,服务器用的Tomcat6;我不断的刷新页面,tomcat进程不断的增加内存,当我刷新到一定的次数,就会出现OutofMemeryError.

applicationContext.xml的配置如下:

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans  
  3.  xmlns="http://www.springframework.org/schema/beans"  
  4.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">  
  6.   
  7.   
  8.  <bean id="DataSource"  
  9.   class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
  10.   <property name="driverClassName"  
  11.    value="oracle.jdbc.driver.OracleDriver">  
  12.   </property>  
  13.   <property name="url"  
  14.    value="jdbc:oracle:thin:@localhost:1521:oemrep">  
  15.   </property>  
  16.   <property name="username" value="SYSTEM"></property>  
  17.   <property name="password" value="fl"></property>  
  18.  </bean>  
  19.     
  20.  <bean id="sessionFactory"  
  21.   class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  22.   <property name="dataSource">  
  23.    <ref bean="DataSource" />  
  24.   </property>  
  25.   <property name="hibernateProperties">  
  26.    <props>  
  27.     <prop key="hibernate.dialect">  
  28.      org.hibernate.dialect.Oracle9Dialect   
  29.     </prop>  
  30.     <prop key="hibernate.show_sql">true</prop>  
  31.    </props>  
  32.   </property>  
  33.   <property name="mappingResources">  
  34.    <list>  
  35.     <value>com/dao/po/hbmxml/TestUser.hbm.xml</value>  
  36.     <value>com/dao/po/hbmxml/TestInformation.hbm.xml</value></list>  
  37.   </property>  
  38.  </bean>  
  39.   
  40.  <bean id="TestUserDAO" class="com.dao.impl.TestUserDAOImpl">  
  41.   <property name="sessionFactory">  
  42.    <ref bean="sessionFactory" />  
  43.   </property>  
  44.  </bean>  
  45.     
  46.  <bean id="TestInformationDAO"  
  47.   class="com.dao.impl.TestInformationDAOImpl">  
  48.   <property name="sessionFactory">  
  49.    <ref bean="sessionFactory" />  
  50.   </property>  
  51.  </bean>     
  52.     
  53.  <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">     
  54.         <property name="sessionFactory">     
  55.             <ref local="sessionFactory" />     
  56.         </property>     
  57.     </bean>    
  58.        
  59.  <bean id="TestInformationDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">     
  60.      
  61.        <property name="transactionManager">     
  62.             <ref bean="transactionManager" />     
  63.         </property>     
  64.      
  65.         <property name="target">     
  66.             <ref local="TestInformationDAO"/>     
  67.         </property>     
  68.      
  69.         <property name="transactionAttributes">     
  70.             <props>     
  71.                 <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>  
  72.                 <prop key="*">PROPAGATION_REQUIRED</prop>      
  73.             </props>     
  74.         </property>     
  75.     </bean>         
  76. </beans>  

web.xml的配置文件

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5"    
  3.  xmlns="http://java.sun.com/xml/ns/javaee"    
  4.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  5.  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee    
  6.  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  7.      
  8.   <welcome-file-list>  
  9.     <welcome-file>index.jsp</welcome-file>  
  10.   </welcome-file-list>  
  11.      
  12.   <servlet>  
  13.   <servlet-name>springapp</servlet-name>  
  14.   <servlet-class>  
  15.   org.springframework.web.servlet.DispatcherServlet   
  16.   </servlet-class>  
  17.   </servlet>  
  18.   <servlet-mapping>  
  19.   <servlet-name>springapp</servlet-name>  
  20.   <url-pattern>*.do</url-pattern>  
  21.   </servlet-mapping>  
  22.     
  23.     
  24.   <context-param>      
  25.    <param-name>contextConfigLocation</param-name>      
  26.    <param-value>/WEB-INF/applicationContext.xml</param-value>      
  27.   </context-param>      
  28.   <servlet>      
  29.       <servlet-name>SpringContextServlet</servlet-name>      
  30.       <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>          
  31.       <load-on-startup>1</load-on-startup>      
  32.   </servlet>    
  33.      
  34.   <filter>    
  35.   <filter-name>hibernateFilter</filter-name>    
  36.   <filter-class>    
  37.      org.springframework.orm.hibernate3.support.OpenSessionInViewFilter    
  38.   </filter-class>    
  39.   <init-param>    
  40.      <param-name>singleSession</param-name>    
  41.      <param-value>true</param-value>  
  42.   </init-param>  
  43.   </filter>    
  44.     
  45.   <filter-mapping>    
  46.   <filter-name>hibernateFilter</filter-name>    
  47.   <url-pattern>*.do</url-pattern>    
  48.   </filter-mapping>  
  49.      
  50.   <listener>    
  51.  <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>    
  52.   </listener>    
  53.        
  54. </web-app>  

 

   
最后更新时间:2007-12-07
我公司也有一个系统
Spring + hibernate + Spring MVC
我发现代码写得太乱,然后只要系统用一段时间后,javaw.exe的进程内存越来越大,然后用很长时间就会内存泄露。
一直找不到什么原因,但我感觉不是hibernate+ Spring MVC 的原因,
也许里面代码有问题。
希望你可以找到问题所在
   
0 请登录后投票
最后更新时间:2007-12-19
是不是hibernate的问题啊
   
0 请登录后投票
最后更新时间:2008-06-18
个人觉得应该去看看dao,或者Service是否定义了局部变量,特别是List,Map这些Collection.
   
0 请登录后投票
最后更新时间:2008-06-18
tomcat经不住你那么狂刷新的,
可以换jboss试试,虽然里面也是个tomcat,但好像被jboss保护起来了
   
0 请登录后投票
最后更新时间:2008-06-18
先把tomcat可以使用的内存量调大,然后再次进行“刷新”实验。

在“刷新”之前和之后都记录一下jvm的内存使用情况。

观察内存占用在系统平静一段时候后会不会恢复到接近原先的量。

如果tomcat只会把内存吞进来,而最终却吐不出去的话,一般就是程序写得有问题,造成所谓的“内存泄漏”了。

“内存泄漏”的出现,一般情况下不会是hibernate,struts,spring这些东西造成的,应该是自己的代码中间存在问题,好好查找一下吧。
   
0 请登录后投票
最后更新时间:2008-06-23
你查一下代码吧~
内存泄漏吧,估计是某些资源用完后没释放
   
0 请登录后投票
论坛首页 入门讨论版 Spring

跳转论坛:
JavaEye推荐