Время жизни соединения = 0 в строке подключения MySql - PullRequest
5 голосов
/ 05 августа 2009

Что именно означает Connection Lifetime=0 в строке подключения?

Ответы [ 4 ]

4 голосов
/ 10 августа 2010

Основываясь на моих исследованиях, я считаю, что Майра - самый близкий из других ответов.

Это не то же самое, что и время ожидания соединения.

Вместо этого посмотрите этот псевдокод из этой статьи:

On SqlConnection.Close

   Check if time the connection has been open is greater than Connection Lifetime if it is, throw the connection away

   Else Put connection on the pool

В той же статье объясняется, почему вы редко хотели бы использовать это свойство (и ситуации, в которых вы могли бы).

Обратите внимание, что оно было переименовано в "Time Balance Timeout" в попытке прояснить его поведение согласно приведенной выше статье.

2 голосов
/ 05 августа 2009

Кроме того, Когда вы используете Connection LifeTime: Разрушает пул соединений Если время открытия вашего соединения больше, чем Connection LifeTime, соединение не может быть использовано.

Я предлагаю использовать Connection LifeTime, если у вас нет соединения в кластере серверов

1 голос
/ 05 августа 2009

Обновлено: нулевое значение (0) приводит к тому, что для пула подключений устанавливается максимальное время ожидания соединения.

Ref .

0 голосов
/ 05 августа 2009

Это означает, что период ожидания соединения отсутствует. Например, если задано значение 300, если за это время запрос не завершен, скажем, из-за большого количества данных будет сгенерировано исключение тайм-аута. Когда это скажет 0, это будет работать, пока запрос не будет завершен.

...