我遇到Tomcat的OutOfMemory错误。自从我将Hibernate添加到应用程序中以来,这个错误就开始了。 我没有使用Spring,所以我为Hibernate Sessions做了所有开放/关闭。
以下是我正在使用的一些Hibernate配置。我在Java代码中创建了SessionFactory。
hibernate.current_session_context_class=thread
hibernate.connection.jndi.datasource=jdbc/dataSource
我创建了自己的HibernateUtil类来检索/保存数据。要初始化它,我只需调用MyHibernateUtil.initialize()并创建SessionFactory。
这是一个Servlet的基本应用程序。在添加Hibernate之前,这不是问题。我也在使用下面的MyHibernateUtil.closeSession()关闭会话。
有人使用Tomcat和Hibernate面对Tomcat OutOfMemory问题吗?
public class MyHibernateUtil{
public static SessionFactory factory = null;
public static AnnotationConfiguration aConfigure = new AnnotationConfiguration();
private static AnnotationConfiguration configure(){
//Add my annotated classes here
...
return aConfigure;
}
public static initialize(){
Configuration configure = MyHibernateUtil.configure();
//I add my Hibernate configuration stuff here.
factory = configure.buildSessionFactory();
}
public static Session getSession(){
Session hibernateSession = factory.getCurrentSession();
return hibernateSession;
}
public static void closeSession(){
MyHibernateUtil.getSession().close();
}
public static Session beginTransaction() {
Session hibernateSession;
hibernateSession = MyHibernateUtil.getSession();
hibernateSession.beginTransaction();
return hibernateSession;
}
public static void commitTransaction() {
MyHibernateUtil.getSession().getTransaction().commit();
}
}
答案 0 :(得分:1)
好吧,也许你的记忆力不足以加载一切。通过将-Xmx256m
和-XX:MaxPermSize=128m
添加到CATALINA_OPTS
变量,在catalina.sh中增加它。 (我的数字是任意选择的)。 (您还可以使用-Xms
)