2012年1月28日

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

片岡です。

tcp_keepalives_idleとtcp_keepalives_intervalの設定は、9.0からWindowsネイティブ版でも対応したようですね(関連コードが2010年7月8日にMagnusさんによってコミットされてました)。
tcp_keepalives_countについてはWindowsのAPIがサポートしてないので対応不可ということのようです。

2012年1月28日16:51 MauMau <maumau307@xxxxx>:
> 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時間)を変更するしかないと思います。
>
>

--
Hiroki Kataoka


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




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