У меня есть следующий сценарий:
Я подключаюсь к TCP / IP к более чем 100 системам, устанавливая параметры сокета таким образом (чтобы закрыть любые подключения к базе данных в случаесмерти потока) SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
Каждый поток устанавливает подключение к базе данных
каждый запрос к базе данных из одного потока ОБЯЗАТЕЛЬНО открывает и закрывает соединение с БД.
моя строка подключения выглядит следующим образом: Data Source = xxx;Исходный каталог = ххх;ИД пользователя = ххх, пароль = ххх;Тайм-аут соединения = 0;Максимальный размер пула = 300;Pooling = True
Моя проблема заключается в следующем, каждые 5/10 минут я получаю следующий тип сообщения:
Истекло время ожидания.Время ожидания истекло до получения соединения из пула.Это могло произойти из-за того, что были использованы все пулы соединений и был достигнут максимальный размер пула.
Мои вопросы:
- Как можно избежать этой ошибки?
- Настройки строки подключения выглядят правильно?
- Как я могу использовать более мощные сообщения поддержки активности на сокете (если они установлены неправильно)?
Спасибо за все.