Tomcat 5.5 errore OutOfMemory usando Hibernate
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();
}
}
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
)