[pgsql-jp: 38117] 強制的に接続をクローズ

Yasuo Ohgaki yohgaki @ ohgaki.net
2007年 3月 8日 (木) 09:14:09 JST


大垣です。

libpqでDB接続をクローズする場合、PQfinishを利用しますが

COPY test FROM STDIN WITH DELIMITER ',' CSV QUOTE '\"' ESCAPE '\"'";

のようなコマンドを実行してからPQfinishを呼んでも(実行完了
を待ち続けるため)接続を終了できません。

インタラクティブなアプリケーションであればCTRL-Cで終了でも
構わないかも知れませんが、非インタラクティブなアプリケーション
ではCTRL-Cは解決策になりません。
# 永遠に待ち続けるようなコマンドは共有型Webホスティングサービ
# スでは効果的なDoSとなる。

PGConnの中身を見て、ソケットを強制的にクローズさせる事も可能
ですが、構造体の中身の値を直接利用するとポータビリティが犠牲に
なります。強制的に接続を終了させたいのですが他に良いアイデア
がないでしょうか?

-- 
Yasuo Ohgaki : yohgaki @ ohgaki.net : http://www.ohgaki.net/




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