Hibernacja używa prymitywnej puli połączeń mechanizm , który nie nadaje się do celów produkcyjnych (jest nawet napisane w pliku dziennika!). Powinieneś zawsze użyj mechanizmu puli połączeń, niezależnie od tego, czy jest to ten, który zapewnia Twój kontener, czy jest to mechanizm dołączony do Twojej aplikacji (na przykład c3p0). Wyjątkiem, który widzisz, jest to, że MySQL zamknął „stare” połączenie, którego Hibernate nadal używa. Możesz spróbować dodać opcję adresu URL JDBC, taką jak „autoReconnect”, ale to naprawdę nie jest rozwiązanie długoterminowe.
Najlepiej byłoby skonfigurować kontener tak, aby dostarczał połączenia do aplikacji za pośrednictwem JNDI. Można to łatwo zrobić za pomocą pliku "-ds.xml" w JBoss lub pliku context.xml dla Tomcata.