2012年1月27日

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

片岡です。

コネクション断は、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月27日 21:54
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/108259
トラックバック
コメント
コメントする




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