2012年1月28日

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

MauMauです。

片岡さんの言われるように、8.3のマニュアルでは、
Windowsでtcp_keepalives_xxxが使える/使えないという記述がないのに対し、
9.1のマニュアルではWindowsについての記述があります。

ソースコードでも、9.1ではWindows用の専用コードの中で、
WSAIoctl()を使って、

tcp_keepalives_idleとtcp_keepalives_intervalの設定を適用しています。
tcp_keepalives_countの設定は有効にならないようです。
一方、8.3のソースコードでは、そのような処理がありません。
8.3ではtcp_keepalives_xxxの設定は有効にならないということでしょうか。

もしレジストリの値の変更によってPostgreSQL以外のプログラムに影響が及ぶのを心配するならば、
PostgreSQL 9.1を使うのがよいと思います。


以上です。

From: "Hiroki Kataoka" <kataoka@xxxxx>
>>> コネクション断は、LinuxやWindowsのデフォルトでは2時間少々で検出されます。つまりその間はロックされっぱなしになる可能性があります。
>>>
>>> もっと早いタイミングで検出したいなら、通常はpostgresql.confで
>>> tcp_keepalives_idle
>>> tcp_keepalives_interval
>>> tcp_keepalives_count
>>> を設定すればOKですが、残念ながらWindowsではnot
>>> suppoertedで機能しません。Windowsで対策をするなら、レジストリを書き換えてOSのデフォルト設定(2時間)を変更するしかないと思います。


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




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