[pgsql-jp: 30030] Re: コネクションプールが最大数を越えます
zensyo @ ann.tama.kawasaki.jp
zensyo @ ann.tama.kawasaki.jp
2003年 5月 23日 (金) 00:23:15 JST
鈴木@inetdです。
From: 末光美恵 <zenobia @ palmyra.ne.jp>
Subject: [pgsql-jp: 30018] コネクションプールが最大数を越えます
Date: Wed, 21 May 2003 12:25:14 +0900
Message-ID: <3ECAF19A.8020008 @ palmyra.ne.jp>
> 解決方法として試みたのは
> 1.アプリケーションプログラムで必ずコネクションを close する
> 当たり前ですが、これが信頼できないので、溜まったコネクションプールを
> 破棄するのが今回の命題です。
途中省略
> 無駄なコネクションプールを破棄する方法を教えて下さい。
うちでは仕方ないのでdelegateを途中に挟んでtimeout処理をさせるようにし
ています。
client --------(5432)-> delegate -------(5431)-> postmaster
(内はポート番号)
delegateの起動はこんな感じです。
delegated -P5432 SERVER=tcprelay://dbserver.example.com:5431 TIMEOUT=io:60
上記例では60秒間通信が行われていないとコネクションを切断します。
コネクションを切断したことはpostmasterのログには即座に出ます。psqlでは
タイムアウト後にコマンドを実行すると、切断された旨表示されます。
(psqlは一旦認証を済ますと、再接続時には自動的に認証してくれるんですね)
postmasterのポートをデフォルトから変更するとpg_ctlが結構あやしい動きに
なってしまうようです。pg_ctl start を実行するときに-Wオプションが必要
でした。
でわ。
pgsql-jp メーリングリストの案内