Python言語用パッケージ(psycopg)を利用してConnection Managerを使用する際の注意点について説明します。
Python言語用パッケージ(psycopg)では、psycopg.Connectionクラスとpsycopg.AsyncConnectionクラスを使用することでConnection Managerと連携することができます。この2つのクラスで定義されていないメソッドを使用する場合は、“3.3 libpqでの使用方法”も併せて参照してください。
Python言語用パッケージ(psycopg)では、Connection Managerの生死監視機能は利用できません。したがって、Python言語用パッケージ(psycopg)で生死監視を行う場合は、TCP keepalive機能を利用します。ただし、TCP keepalive機能には、“1.1.1 TCP keepaliveとの違い”に挙げたようなデメリットが存在します。これについては、以下のように対処してください。
tcp_user_timeoutパラメータを設定してください。Python言語用パッケージ(psycopg)はlibpqを用いて通信するため、libpqのtcp_user_timeoutパラメータが利用できます。
レジストリ(HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters)のTcpMaxDataRetransmissionsの値を設定してください。ただし、OS全体に影響を及ぼすため、設定する値には十分注意してください。
keepalive機能を有効化する必要があるため、対処方法はありません。そのため、Python言語用パッケージ(psycopg)を直接利用する場合には十分注意してください。