ADO.NET - Параллельные соединения и максимальный размер пула.Ошибка тайм-аута - PullRequest
0 голосов
/ 24 января 2011

У меня есть следующий сценарий:

  • Я подключаюсь к TCP / IP к более чем 100 системам, устанавливая параметры сокета таким образом (чтобы закрыть любые подключения к базе данных в случаесмерти потока) SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);

  • Каждый поток устанавливает подключение к базе данных

  • каждый запрос к базе данных из одного потока ОБЯЗАТЕЛЬНО открывает и закрывает соединение с БД.

  • моя строка подключения выглядит следующим образом: Data Source = xxx;Исходный каталог = ххх;ИД пользователя = ххх, пароль = ххх;Тайм-аут соединения = 0;Максимальный размер пула = 300;Pooling = True

Моя проблема заключается в следующем, каждые 5/10 минут я получаю следующий тип сообщения:

Истекло время ожидания.Время ожидания истекло до получения соединения из пула.Это могло произойти из-за того, что были использованы все пулы соединений и был достигнут максимальный размер пула.

Мои вопросы:

  1. Как можно избежать этой ошибки?
  2. Настройки строки подключения выглядят правильно?
  3. Как я могу использовать более мощные сообщения поддержки активности на сокете (если они установлены неправильно)?

Спасибо за все.

...