Я испытываю ошибку 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();
}
}