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.