【问题标题】:Tomcat 5.5 OutOfMemory error using Hibernate使用休眠的 Tomcat 5.5 OutOfMemory 错误
【发布时间】:2011-05-01 08:10:56
【问题描述】:

我遇到了来自 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();
  }

}

【问题讨论】:

  • 您甚至不需要手动close 会话,因为您使用的是getCurrentSession,它会在事务结束(提交或回滚)时关闭。
  • 但在我只使用 org.hibernate.Criteria 进行简单 SELECT 的情况下说...“criteria.list();”这只会刷新会话而不是提交,对吗?在这种情况下我还需要手动关闭会话吗?

标签: hibernate tomcat tomcat5.5


【解决方案1】:

好吧,也许您的内存不足以加载所有内容。通过将 -Xmx256m-XX:MaxPermSize=128m 添加到 CATALINA_OPTS 变量,在 catalina.sh 中增加它。 (我的号码是任意选择的)。 (也可以用-Xms设置初始值)

【讨论】:

    猜你喜欢
    • 2012-11-26
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    相关资源
    最近更新 更多