接続プール (SQL Server Driver for PHP)
SQL Server Driver for PHP の接続プールに関して重要な点は次のとおりです。
- SQL Server Driver for PHP では、ODBC 接続プールを使用します。
- 既定では、接続プールが有効になっています。サーバーに接続すると、ドライバは、新しい接続を作成する前に、プールされた接続の使用を試行します。同等の接続がプールに見つからない場合、新しい接続が作成されてプールに追加されます。ドライバは、接続文字列の比較に基づいて、接続が同等であるかどうかを判断します。
- プールからの接続を使用すると、接続状態はリセットされます。
- 接続で sqlsrv_close を呼び出すと、接続がプールに返されます。ConnectionPooling 属性を false に設定して接続を作成した場合 (このトピックのコード例を参照)、sqlsrv_close によって接続が閉じられます。
接続プールの詳細については、「Driver Manager Connection Pooling (英語)」を参照してください。
接続文字列の ConnectionPooling 属性を false (または 0) に設定すると、ドライバで強制的に新しい接続を作成するようにできます。たとえば、次のコードでは、接続プールで同等の接続を検索する代わりに新しい接続 ($conn) を作成するよう強制します。
$serverName = "(local)";
$connectionInfo = array("Database"=>"AdventureWorks",
"ConnectionPooling"=>false
);
$conn = sqlsrv_connect($serverName, $connectionInfo);
接続文字列で ConnectionPooling 属性を省略するか true (または 1) に設定した場合、ドライバは、同等の接続が接続プールに存在しない場合にのみ新しい接続を作成します。
その他の接続属性の詳細については、「sqlsrv_connect」を参照してください。