(PECL mongo >=1.3.0)
MongoClient::close — Cierra esta conexión
$connection
] )El método MongoClient::close() cierra forzosamente una conexión a la base de datos, incluso si se están usando conexiones persistentes. Nunca se debería realizar esto bajo circunstancias normales.
connection
La conexión. Si no se proporciona una, o es FALSE
, la conexión que fuera
seleccionada para escrituras será cerrada. En una configuración de un solo nodo,
esto es, la conexión completa, y si se está conectado a un
conjunto de réplica, close() solamente cerrará la
conexión al servidor primario.
Si connection es TRUE
, todas las conexiones disponibles en el administrador
de conexiones serán cerradas. Esto puede incluir conexiones a las que no hace
referencia la cadena de conexión usada para crear el objeto que
se usa para invocar el cierre.
Si connection es un argumento de tipop string, solamente se cerrará la conexión identificada por este hash. Los hash son identificadores para una conexión que pueden obtenerse llamando a MongoClient::getConnections().
Devuelve si la conexión fue cerrada con éxito.
Ejemplo #1 Ejemplo de MongoClient::close()
Este ejemplo muestra cómo cerrar selectivamente todas las conexiones únicamente a secundarios.
<?php
// Conectar a un conjunto de réplica
$a = new MongoClient("mongodb://whisky:13000/?replicaset=seta");
$conexiones = $a->getConnections();
foreach ( $conexiones as $con )
{
// Iterar sobre todas las conexiones, y cuando el tipo es "SECONDARY"
// cerramos la conexión
if ( $con['connection']['connection_type_desc'] == "SECONDARY" )
{
echo "Cerrando '{$con['hash']}': ";
$cerrada = $a->close( $con['hash'] );
echo $cerrada ? "ok" : "falló", "\n";
}
}
?>
El resultado del ejemplo sería:
Closing 'whisky:13001;X;4948': ok
Versión | Descripción |
---|---|
1.3.0 |
El parámetro |
1.2.0 |
Antes de la versión 1.2.0, el controlador no utilizaba conexiones persistentes de forma predeterminada, por lo que todas las conexiones se cerraban tan pronto como una conexión de MongoDB estuviera fuera de ámbito. Desde la versión 1.2.0, este ya no es el caso, y es una mala idea invocar a close, ya que se podría terminar por sobrecargar el servidor con conexiones bajo una alta carga. |