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

中西剛紀 naka24nori @ gmail.com
2016年 8月 25日 (木) 12:58:50 JST


石井さん

中西です。

今回は postgres データベースを使っていたので、
別の名前のデータベースを作成してテストしたところ、
セッションを切断してもバックエンドへのコネクションが
維持されることが確認できました。

ちなみに template0, template1, postgres, regression という名前のデータベースが
コネクションプールされないという仕様は、pgpool-IIのマニュアルにも
書かれているとよいかな、と思いました。
(通常用途で上記データベースを使わないでしょうから支障はないのかもしれませんが)

ご回答ありがとうございました。


2016年8月25日(木) 7:55 Tatsuo Ishii <ishii @ sraoss.co.jp>:

> 中西さん
>
> 石井です。
>
> > 中西と申します。
> > お世話になっております。
> >
> > 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
>
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://www.sraoss.jp/pipermail/pgpool-general-jp/attachments/20160825/20e0543c/attachment-0001.html>


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