我使用以下简单的网络应用程序:
1弹簧mvc4.1.1
2休眠4.3.10
3-servlet 3.1
4-Oracle 12c
5-Ojdbc6(它存在于tomcat / lib中,而不存在于app / lib中)
6-JPA 2.1
我的持久性xml是:
<?xml version="1.0" encoding="UTF-8"?>
<persistence-unit name="NewpersistenceUnit">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<mapping-file>com/springapp/mvc/DBManagement/EntityMapping.xml</mapping-file>
<class>com.springapp.mvc.DBManagement.StateEntity</class>
<properties>
<property name="hibernate.connection.url" value="jdbc:oracle:thin:@//localhost:1521/orcl"/>
<property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
<property name="hibernate.connection.username" value="system"/>
<property name="hibernate.connection.password" value="1234546"/>
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hbm2ddl.auto" value="update"/>
<property name="hibernate.connection.oracle.jdbc.V8Compatible" value="true"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
</properties>
</persistence-unit>
插入方法是
public void AddLocation()
{
EntityManagerFactory emf= Persistence.createEntityManagerFactory("NewpersistenceUnit");
EntityManager em= emf.createEntityManager();
EntityTransaction et= em.getTransaction();
LocationEntity location = new LocationEntity();
location.setCityname("Newyork");
et.begin();
em.persist(location);
et.commit();
em.close();
}
当我在tomcat8.0.26中部署和取消部署并导致内存泄漏时
请帮我
最佳答案
以我的经验,这在大多数情况下是由现有对tomcats WebappClassLoader的强引用引起的。使用的库之一或您的应用程序对WebappClassLoader有很强的引用,可防止WebappClassLoader被垃圾回收。
可以按照以下步骤跟踪此类内存泄漏:
使用您的应用程序启动tomcat
一次重新部署您的应用程序
手动运行垃圾回收并创建一个堆转储(可以通过visualvm完成)
使用Eclipse Memory Analyzer或JProfiler之类的配置文件分析您的堆转储
查找具有属性starts = false的WebappClassLoader类型的实例
跟踪这些WebappClassLoader实例的GC根(不包括弱引用,软引用和幻像引用)
现在,您应该查看是什么原因导致WebappClassLoader保持活动并被阻止进入GC
这是更详细的说明:How to analyze leaky webapps
关于spring-mvc - Tomcat内存泄漏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33522057/