(PECL mongo >=1.3.0)
MongoClient::close — Закрывает соединение
Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.
$connection
] ) : boolМетод MongoClient::close() принудительно закрывает соединение с базой данных, даже если используются постоянные соединения. Вы никогда не должны делать это при нормальных обстоятельствах.
connection
Если соединение не задано или FALSE
, то соединение,
которое будет выбрано для записи, будет закрыто.
В конфигурации с одним узлом – все соединения,
но если вы подключены к набору реплик, close() закроет соединение
только с основным сервером.
Если соединение TRUE
, тогда все соединения,
известные диспетчеру соединений, будут закрыты.
Это может включать соединения, на которые нет ссылок в строке соединения,
используемой для создания объекта, для которого вы вызываете close.
Если connection является строковым аргументом, он закроет только соединение, идентифицированное этим хешем. Хэши являются идентификаторами для соединения и могут быть получены путем вызова MongoClient::getConnections().
Возвращает, если соединение было успешно закрыто.
Пример #1 Пример использования MongoClient::close()
Этот пример демонстрирует, как выборочно закрыть все соединения только для вторичных серверов.
<?php
// Подключаемся к набору реплик
$a = new MongoClient("mongodb://whisky:13000/?replicaset=seta");
$connections = $a->getConnections();
foreach ( $connections as $con )
{
// Цикл по всем соединениям, и если тип "SECONDARY"
// мы закрываем соединение
if ( $con['connection']['connection_type_desc'] == "SECONDARY" )
{
echo "Закрываем '{$con['hash']}': ";
$closed = $a->close( $con['hash'] );
echo $closed ? "ok" : "failed", "\n";
}
}
?>
Результат выполнения данного примера:
Закрываем 'whisky:13001;X;4948': ok
Версия | Описание |
---|---|
1.3.0 |
Параметр |
1.2.0 |
До версии 1.2.0 драйвер не использовал постоянные соединения по умолчанию, и все соединения закрывались, как только выход из MongoDB выходил из области действия. Начиная с версии 1.2.0, это больше не так, и плохая идея - вызывать close, так как в итоге вы можете перегружать сервер соединениями под высокой нагрузкой. |