Seu pool de conexão DBCP está expirando, use a configuração abaixo...
A solução simples é fazer com que o DBCP verifique as conexões antes de fornecê-las ao chamador. Adicione as seguintes propriedades à sua configuração BasicDataSource:
<property name="testOnBorrow" value="true"/>
<property name="validationQuery" value="SELECT 1"/>
Para obter uma lista de todas as opções, consulte aqui:http://commons.apache.org/dbcp/ configuração.html
EDIT:Para uma ligeira correção no que está acontecendo, veja o comentário de MJB abaixo.