DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ODBC接続での同一DBへの接続について

環境/言語:[Windows2003Server, php5, SQLServer2000, ODBC]
分類:[その他]

現在、PHP+SQLServerによるWebシステムを構築しています。
分散開発の余波から、1つのスレッドで、同一データベース、
同一ユーザで、複数の接続を保持しなければならなくなって
しまいました。
しかし、下記の手順で接続・切断を実施すると、こちらが
意図しない動きをします。

1.1つ目の接続
2.2つ目の接続
3.2つ目の切断
4.1つ目の切断

[2.2つ目の接続]時に、新たな接続が確立されません。
(クエリアナライザーのsp_whoストアドにより確認)
ODBC接続ID(odbc_connectの戻り値)として、同一のIDが返さ
れているようです。
ただし、切断される時は、[4.1つ目の切断]となった時に初
めて接続が切れます。
(クエリアナライザーのsp_whoストアドにより確認)

疑問点は以下の通りです。
・なぜODBC接続IDが2つ生成されないのか?
・なぜ同一のODBC接続IDにも関わらず、切断時は2回目の切断
 で接続が開放されるのか?

ヒントになる事でもよいので、分かる方、返信をお待ちして
います。

以上です、よろしくお願いします。


[環境]
DB:SQLServer2000
アプリ:PHP5
接続方法:ODBC(ドライバ:SQL Server)
■No12251に返信(9ballさんの記事)
(自己レスです)
以下に情報が載っていました。

 日本PHPユーザ会
 http://www.php.gr.jp/php/phplib/documentation-3.html

内容の一部を抜粋します。

 「PHP は、可能ならば接続を再利用します。同じホストに同じユーザ名とパスワードで接続が行われている場合、
  PHP により第2の接続は作成されません。代わりに既存の接続IDが呼出側に返されます。これは、全てのPHPデー
  タベースインターフェースの *_connect() および *_pconnect() コールの両方に関して成り立ちます。 」


ん〜。。結局新しい接続は確立されないということなのでしょうか。。
っということは、Closeも1回でよい(というより1回じゃなきゃダメ)ってことになりますね。

#他にも情報を持っている方がいたら、ぜひ教えて下さい。

DOBON.NET | プログラミング道 | プログラミング掲示板