[PHP-users 417] Re: 持続的データベース接続の動作について!

Hisao SHIBUYA php-users@php.gr.jp
Fri, 29 Jun 2001 19:44:25 +0900


渋谷です。

> PHP4.0.6とPostgreSQL7.1を利用して
> phpとdbの接続をpg_pConnect()を利用して”持続的データベース接続”を
> したいと思っています。
> 何か注意事項は有りますか?

[PostgresSQL]
pgsql.allow_persistent  =       On
      ; allow or prevent persistent link
pgsql.max_persistent    =       -1
      ; maximum number of persistent links. -1 means no limit
pgsql.max_links         =       -1
      ; maximum number of links (persistent+non persistent).  -1 means no limit

あたりの設定ですね。
デフォルトでは制限がかかっていません。最大接続数を制限したい場合は、
このあたりを変更してください。
制限しないと PostgreSQL への接続が増えたときに PostgreSQL が実際にその接続数
捌けない場合にページが表示されないといったことになります。
PostgreSQL の最大接続数を -N で設定して、その接続数ちゃんと繋がるか
pgbench 等で確認しておくのがいいと思います。

要は PHP からのリクエスト数分ちゃんと PostgreSQL が接続できるか確認して
おけば大丈夫です。
# これは普通の pg_connect でも同じことですが pg_connect はスクリプト終了時に
# かなりのサイトでないと最大数までいかないでしょう


> また、ユーザがpg_pConnect()してあとにpg_close()しない場合はどうなるのですか?

スクリプトが終了するときに勝手に pg_close() されていたと思います。

shibuya@alpha.or.jp