WebService X Tomcat

Boa noite!
Criei um WebService utilizando a ide Eclipse, hibernate, json, mysql.
Instalei no cliente e ficou funcionando muito bem. Do nada ele para de funcionar, não da erro, porem parece que não consegue ler o banco, visto que não traz nada.
Ai é só eu parar o tomcat, reiniciar e tudo volta a funcionar. Passa um tempo e da problema novamente.

Alguem já passou por isso, saberia me dizer onde procurar o problema?

Olá. Bom dia.

Tenho um Webservice assim num cliente rodando a mais de um ano e não tenho problema com relação a isto.

Vou tentar te ajudar!

Vamos observar primeiramente a sua conexão com o banco de dados. Como ela é feita dentro da sua classe de serviços? (try/catch/finally)

Bom dia!
Obrigado pela ajuda.
Segue abaixo um código de exemplo.

public List<AvisosMobileVO> getAvisos(ConfiguracaoMobileVO config){
		List<AvisosMobileVO> listAvisos = new ArrayList<>();
		AvisosMobileVO aviso;
		VendedorMobileVO vendedor;
		EntityManager em;
		AcessoDB acessoDb = new AcessoDB();
		Calendar dataFiltro = Calendar.getInstance();
		dataFiltro.add(java.util.Calendar.DAY_OF_MONTH, -10);
		try {
			em = acessoDb.conectar();
			Query query = em.createQuery("SELECT a FROM AvisosMobileVO a WHERE a.dataAviso > :dataAv"
					+ " AND (a.vendedor.id = :idVendedor OR a.vendedor is null)");
			query.setParameter("dataAv", dataFiltro.getTime());
			query.setParameter("idVendedor", config.getVendedorPadrao().getId());
			List<AvisosMobileVO> listAvisosERP = query.getResultList();
			for(int i = 0; i < listAvisosERP.size(); i ++){
				aviso = new AvisosMobileVO();
				aviso.setId(listAvisosERP.get(i).getId());
				aviso.setDataAviso(listAvisosERP.get(i).getDataAviso());
				aviso.setTexto(listAvisosERP.get(i).getTexto().replaceAll("\t", "").replaceAll("\r\n", "").replaceAll("\n", "").trim());
				aviso.setVisualizado("N");
				
				vendedor = new VendedorMobileVO();
				vendedor.setId(listAvisosERP.get(i).getVendedor().getId());
				aviso.setVendedor(vendedor);				
				listAvisos.add(aviso);
			}
			return listAvisos;
		}catch(Exception e){
			e.printStackTrace();
			return new ArrayList<>();
		}finally {
			acessoDb.desconectar();
		}
}


public class AcessoDB {

	private static EntityManagerFactory factory;
    private EntityManager em;

    static {
        try {
            factory = Persistence.createEntityManagerFactory("banco");
        } catch (RuntimeException ex) {
            ex.printStackTrace();
        }
    }

    public EntityManager conectar() throws Exception {
        em = factory.createEntityManager();         
        return em;
    }

    public void desconectar() {
        if (em != null && em.isOpen()) {
            em.close();
        }
    }
    
    public void beginTrans(){
        if(em != null){
            if(!em.getTransaction().isActive()){
                em.getTransaction().begin();
            }
        }
    }
    
    public void commitTrans(){
        if(em != null){
            if(em.getTransaction().isActive()){
                em.getTransaction().commit();
            }
        }
    }
    
    public void rollbackTrans(){
        if(em != null){
            if(em.getTransaction().isActive()){
                em.getTransaction().rollback();
            }
        }
    }
}

Outra coisa que esqueci de mencionar. Neste mesmo Tomcat, esta rodando um sistema que fica funcionando normalmente. Somente o WebService para de funcionar.

Este é o erro que ele passa a dar depois que para de funcioanar.

org.hibernate.exception.JDBCConnectionException: could not execute query
org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1389)
org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1317)
org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:255)