Ответ 1
Время ожидания - это то, как долго вы ожидаете ответа от запроса, прежде чем сдаваться. TimeOut = 0 означает, что вы будете продолжать ожидание соединения навсегда. Хорошо, я думаю, если вы подключаетесь к действительно медленному серверу, это нормально, если требуется 12 часов, чтобы ответить:-). Вообще плохо. Вы хотите поместить какой-то разумный тайм-аут по запросу, чтобы вы могли реализовать свою цель и двигаться дальше со своей жизнью.
Время соединения= продолжительность жизни соединения до его уничтожения и воссоздания. Срок службы 0 означает, что он никогда не убивает и не воссоздает. Обычно это не плохо, потому что убивать и воссоздавать соединение медленно. Через различные ошибки ваши соединения могут застрять в нестабильном состоянии (например, при работе со странными 3-сторонними транзакциями), но в 99% случаев полезно поддерживать непрерывность соединения как бесконечное.
Пул соединений - это способ справиться с тем, что создание соединения происходит очень медленно. Поэтому вместо того, чтобы создавать новое соединение для каждого запроса, вместо этого есть пул, скажем, 10, готовые соединения. Когда вам это нужно, вы заимствуете один, используете его и возвращаетесь. Вы можете настроить размер пула, чтобы изменить поведение своего приложения. Большой пул = больше подключений = больше потоков, делающих вещи за раз, но это также может сокрушить все, что вы делаете.
Вкратце:
ConnectionTimeout = 0 - это плохо, сделайте что-то разумное, как 30 секунд.
ConnectionLifetime = 0 в порядке
ConnectionPooling = отключено плохо, вы, скорее всего, захотите его использовать.