2012年1月28日

[pgsql-jp: 41038] Re:トランザクション中のネットワーク切断

石井です。

tcp_keepalives_*を設定する方法は、当たり前ですが UNIX ドメインソケット
を使って接続している場合には効果がないというのが欠点だと思います。
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php

Japanese: http://www.sraoss.co.jp

> 片岡です。
>
> コネクション断は、LinuxやWindowsのデフォルトでは2時間少々で検出されます。つまりその間はロックされっぱなしになる可能性があります。
>
> もっと早いタイミングで検出したいなら、通常はpostgresql.confで
> tcp_keepalives_idle
> tcp_keepalives_interval
> tcp_keepalives_count
> を設定すればOKですが、残念ながらWindowsではnot
> suppoertedで機能しません。Windowsで対策をするなら、レジストリを書き換えてOSのデフォルト設定(2時間)を変更するしかないと思います。
>
> Windows XPのドキュメントですが、 http://support.microsoft.com/kb/314053/ja
> KeepAliveTime
> KeepAliveInterval
> TcpMaxDataRetransmissions
> このあたりをチェックしてみてください。
>
> 2012年1月27日19:26 水口(ヴァンガードネットワークス) <mizuguchi@xxxxx>:
>> SELECT FRO UPDATE後に障害でネットワークが切断されると
>> そのテーブルがロックしたままとなり
>> 他のクライアントの同じ処理でSELECT FOR UPDATE できなくなってしまいます
>> この様に浮いてしまったトランザクションは自動的に解放されないのでしょうか?
>
>> 環境
>> SERVER:WINDOWS7-32Bit postgresql8.3.12
>
> --
> Hiroki Kataoka


投稿者 xml-rpc : 2012年1月28日 02:12
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/108260
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。