Lo stesso errore si è verificato per me quando molti thread hanno avuto accesso al database contemporaneamente e avevo un DBCP separato BasicDataSource e uno Spring JdbcTemplate separato per ogni thread.
Creando entrambi BasicDataSource e il JdbcTemplate un singleton condiviso da tutti i thread, potrei evitare questo errore. Questo è anche ciò che consiglia SpringSource.