Трудно диагностировать это, не видя ваш код, но однажды у меня была похожая проблема из-за того, что mysql закрывает соединения через некоторое время;поэтому убедитесь, что конфигурация вашего источника данных имеет запрос проверки, и testOnBorrow и testWhileIdle оба имеют значение true.
Вот пример:
<Resource auth="Container" type="javax.sql.DataSource" name="jdbc/mydb"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://myserver/mydb"
maxActive="10"
maxIdle="5"
validationQuery="SELECT 1"
testOnBorrow="true"
testWhileIdle="true"
timeBetweenEvictionRunsMillis="10000"
minEvictableIdleTimeMillis="60000"
username="???" password="???"/>