Соединение с БД - PullRequest
       24

Соединение с БД

0 голосов
/ 07 декабря 2011

Я использую Spring 2.5; SimpleJdbcTemplate, использующий пул соединений apache-commons-dbcp. Существует также пул потоков, который порождает поток при выполнении запроса (несколько запросов выполняются и их результаты обрабатываются после завершения всех процессов, поэтому потоки создаются для параллельного выполнения запросов).

В конце концов, все потоки ожидают getConnection () в TIMED_WAIT. Кажется, ни один поток не может получить соединение. Я проверяю БД и все соединения простаивают.

Что вызывает это? У меня 10 подключений в качестве максимального размера пула и 50-100 потоков. Как мне это настроить? Администратор БД говорит, что должно быть достаточно соединений (и я согласен, так как все они простаивают).

То же самое происходит и с BoneCP, как с источником данных для SimpleJdbcTemplate.

1 Ответ

2 голосов
/ 13 декабря 2011

Оказывается, это потому, что в середине цикла через ResultSet был запущен другой запрос, поэтому при достаточном количестве первых запросов вторые не могут получить соединение, и все блокируется.

...