O mesmo erro ocorreu para mim quando muitos threads acessaram o banco de dados simultaneamente e eu tinha um DBCP
BasicDataSource
separado e um Spring JdbcTemplate
separado para cada fio. Ao tornar o
BasicDataSource
e o JdbcTemplate
um singleton compartilhado por todos os threads, eu poderia evitar esse erro. Isso também é o que SpringSource recomenda.