Hibernate använder en primitiv anslutningspoolning mekanism , vilket inte är lämpligt för produktionsändamål (det står till och med det i loggfilen!). Du bör alltid använd en anslutningspoolningsmekanism, oavsett om det är den som tillhandahålls av din behållare, vare sig det är en mekanism som ingår i din applikation (till exempel c3p0). Undantaget du ser är att MySQL stängde en "gammal" anslutning som Hibernate fortfarande använder. Du kan försöka lägga till ett JDBC URL-alternativ, som "autoReconnect", men det är verkligen ingen långsiktig lösning.
Helst bör du konfigurera din behållare för att leverera anslutningarna till din applikation via JNDI. Detta görs enkelt med en "-ds.xml"-fil i JBoss eller med en context.xml för Tomcat.