Ошибка Tomcat 5.5 OutOfMemory при использовании Hibernate - PullRequest
0 голосов
/ 27 октября 2010

Я испытываю ошибку OutOfMemory от Tomcat. Эта ошибка началась с тех пор, как я добавил Hibernate в приложение. Я не использую Spring, поэтому я делаю все открытия / закрытия для Hibernate Sessions.

Ниже приведены несколько конфигов Hibernate, которые я использую. Я создаю свой SessionFactory в коде Java.

hibernate.current_session_context_class=thread
hibernate.connection.jndi.datasource=jdbc/dataSource

Я создал свой собственный класс HibernateUtil для извлечения / сохранения данных. Для инициализации этого я просто вызываю MyHibernateUtil.initialize () и создаю SessionFactory.

Это базовое приложение с одним сервлетом. Это не было проблемой, пока Hibernate не был добавлен. Я также закрываю сессию, используя MyHibernateUtil.closeSession () снизу.

Кто-нибудь сталкивался с проблемами Tomcat OutOfMemory при использовании Tomcat и Hibernate?

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();
  }

}

1 Ответ

1 голос
/ 27 октября 2010

Ну, возможно, вашей памяти недостаточно для загрузки всего.Увеличьте его в catalina.sh, добавив -Xmx256m и -XX:MaxPermSize=128m к переменной CATALINA_OPTS.(мои номера выбраны произвольно).(Вы также можете установить начальные значения с помощью -Xms)

...