Domanda

Ho riscontrato un errore di OutOfMemory da Tomcat. Questo errore ha iniziato sin da quando ho aggiunto Hibernate nell'applicazione. Non sto usando primavera, così faccio tutto il di apertura / chiusura per Hibernate Sessions.

Di seguito sono riportati alcuni file di configurazione di Hibernate che sto usando. Creo il mio SessionFactory nel codice Java.

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

Ho creato il mio classe HibernateUtil per recuperare / Salva dati. Per inizializzare questo mi basta chiamare il MyHibernateUtil.initialize () e creerà il SessionFactory.

Questa è un'applicazione di base con una Servlet. Questo non era un problema fino a quando è stato aggiunto Hibernate. Sto anche la chiusura della sessione utilizzando MyHibernateUtil.closeSession () dal basso.

Chiunque affrontato questioni Tomcat OutOfMemory utilizzando Tomcat e 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();
  }

}
È stato utile?

Soluzione

Be ', forse la memoria non è sufficiente per il carico di tutto. Aumentare in catalina.sh con l'aggiunta di -Xmx256m e -XX:MaxPermSize=128m alla variabile CATALINA_OPTS. (I miei numeri sono scelti arbitrariamente). (È inoltre possibile impostare i valori iniziali con -Xms)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top