1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 328519 $ -->
<refentry xml:id="mongoclient.close" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>MongoClient::close</refname>
<refpurpose>Closes this connection</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>bool</type><methodname>MongoClient::close</methodname>
<methodparam choice="opt"><type>boolean|string</type><parameter>connection</parameter></methodparam>
</methodsynopsis>
<para>
The <function>MongoClient::close</function> method forcefully closes a
connection to the database, even if persistent connections are being used.
You should <emphasis>never</emphasis> have to do this under normal
circumstances.
</para>
<para>
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term>
<parameter>connection</parameter>
</term>
<listitem>
<para>
If connection is not given, or &false; then connection that would be
selected for writes would be closed. In a single-node configuration,
that is then the whole connection, but if you are connected to a
replica set, close() will <emphasis>only</emphasis> close the
connection to the primary server.
</para>
<para>
If connection is &true; then all connections as known by the connection
manager will be closed. This can include connections that are not
referenced in the connection string used to create the object that
you are calling close on.
</para>
<para>
If connection is a string argument, then it will only close the
connection identified by this hash. Hashes are identifiers for a
connection and can be obtained by calling
<function>MongoClient::getConnections</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns if the connection was successfully closed.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title><function>MongoClient::close</function> example</title>
<para>This example demonstrates how to selectively close all connections
for secondaries only.</para>
<programlisting role="php">
<![CDATA[
<?php
// Connect to a replicaset
$a = new MongoClient("mongodb://whisky:13000/?replicaset=seta");
$connections = $a->getConnections();
foreach ( $connections as $con )
{
// Loop over all the connections, and when the type is "SECONDARY"
// we close the connection
if ( $con['connection']['connection_type_desc'] == "SECONDARY" )
{
echo "Closing '{$con['hash']}': ";
$closed = $a->close( $con['hash'] );
echo $closed ? "ok" : "failed", "\n";
}
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Closing 'whisky:13001;X;4948': ok
]]>
</screen>
</example>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>1.3.0</entry>
<entry>
<para>
The <parameter>connection</parameter> parameter to this function was
added in 1.3.0. Before that, only the write connection would be
closed by this method.
</para>
</entry>
</row>
<row>
<entry>1.2.0</entry>
<entry>
<para>
Before version 1.2.0 the driver would not use persistent connections
by default, and all connections would be closed as soon as a MongoDB
connection went out if scope. Since version 1.2.0 this is no longer
the case and it is a bad idea to call close as you might end up
overloading the server with connections under high load.
</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>MongoClient::getConnections</function></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
|