Boa Tarde Pessoal,
estou com o seguinte problema, tenho uma aplicação web, desenvolvida em jsp + hibernate + oracle.
Na Maior parte do tempo ela funciona corretamente, mais algumas vezes, a aplicação não responde mais, e tenho que algumas vezes reiniciar o tomcat, e as vezes ate a maquina para que ela volte a funcionar.
O detalhe, que nos log's, tanto do tomcat, quando os de debug da aplicação não se encontram nenhuma erro.
Alguem teria alguma ideia ?
Caso, ajude, eu utilizo a conexão do manager da aplicação, ou seja onde crio as conexões com o banco;
package com.br.dao;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class ManagerEntityManager {
private static EntityManagerFactory factory;
private static EntityManagerFactory factoryMobile;
private static EntityManager entityManager;
private static EntityManager entityManagerMobile;
/**
* Cria uma entity manager factory única e o retorna em todas as demais chamadas
*/
private static EntityManagerFactory getFactory() {
try{
if (factory == null || !factory.isOpen()) {
factory = Persistence.createEntityManagerFactory("Portal");
}
}catch(Exception e){
System.out.println("Conexão Fechada");
factory = Persistence.createEntityManagerFactory("Portal");
System.out.println("Abrindo nova conexão");
}
return factory;
}
private static EntityManagerFactory getFactoryMobile() {
try{
if (factoryMobile == null || !factoryMobile.isOpen()) {
factoryMobile = Persistence.createEntityManagerFactory("PortalMobile");
}
}catch(Exception e){
System.out.println("Conexão Fechada");
factoryMobile = Persistence.createEntityManagerFactory("PortalMobile");
System.out.println("Abrindo nova conexão");
}
return factoryMobile;
}
/**
* Cria um entity manager único (se criar = true) para a thread e o retorna em todas as demais chamadas
*/
private static EntityManager geraEntityManager() {
getFactory();
try{
if (entityManager == null || !entityManager.isOpen()) {
entityManager = getFactory().createEntityManager();
}
}catch(Exception e){
entityManager = getFactory().createEntityManager();
}
return entityManager;
}
private static EntityManager geraEntityManagerMobile() {
getFactoryMobile();
try{
if (entityManagerMobile == null || !entityManagerMobile.isOpen()) {
entityManagerMobile = getFactoryMobile().createEntityManager();
}
}catch(Exception e){
entityManagerMobile = getFactoryMobile().createEntityManager();
}
return entityManagerMobile;
}
public EntityManager getEntityManager(){
return geraEntityManager();
}
public EntityManager getEntityManagerMobile(){
return geraEntityManagerMobile();
}
}