[pgpool-general-jp: 1415] Re: コネクションプールモードでバックエンドへの接続がプールされない

Tatsuo Ishii ishii @ sraoss.co.jp
2016年 8月 25日 (木) 07:55:57 JST


中西さん

石井です。

> 中西と申します。
> お世話になっております。
>
> pgpool-II 3.4.7 をマスタスレーブモードで使用しています。
> (バックエンドのPostgreSQLはマスタ1台、同期スレーブ1台、非同期スレーブ1台の3台構成。バージョンは9.4.8)
> 
> コネクションプーリングが利用できるよう connection_cache を on
> にし、クライアント(psql)からpgpool-IIに接続したところ、バックエンドのPostgreSQL
> 3台にそれぞれpgpool-IIから接続したバックエンドプロセスが1つずつ生成されました。(ここまで想定どおり)
> 
> その後、psqlからいくつかSQLを実行後psqlを終了し、psqlとpgpool-II間の接続を終了したところ、pgpool-IIからPostgreSQLに生成されていたバックエンドプロセスも終了しました。
> 
> コネクションプーリングを有効にした場合、クライアントからの接続を切断しても、他のクライアントからの接続に備えてバックエンドとの接続は維持されるものと想定していたのですが、これは仕様どおりの挙動なのでしょうか?
> ※以下記事の図1「コネクションプールの概要」の様な形をイメージ
> https://thinkit.co.jp/article/98/2
> 
> 設定等で確認すべき点があればご教授ください。
> よろしくお願いします。

ひとつ考えられるのは、接続したデータベースですね。template0,
template1, postgres, regression という名前のデータベースは特別扱いで、
connection_cache がonでも、コネクションプーリングが維持されないので、セッ
ションが終了するとPostgreSQLへの接続も切断されます。

あと、しばらくたってから確認したということであれば、
connection_life_time や、child_life_time のタイムアウトに引っかかったと
いうことも考えられます。こちらもご確認ください。
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp


pgpool-general-jp メーリングリストの案内