Postgres クライアントのkeepalive設定
Postgresのjavaクライアントでのkeepalive設定の仕方です。
https://jdbc.postgresql.org/documentation/use/
に記載されていて
tcpKeepAlive (boolean)
という部分です。
postgresの接続URLに対して
jdbc:postgresql://localhost:5432/postgres?tcpKeepAlive=True
と後ろにtcpKeepAlive=Trueを記載することで、keepaliveが有効となります。
実際の設定箇所は、
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.5</version>
の場合、
org.postgresql.core.v3.ConnectionFactoryImpl
~~~
boolean requireTCPKeepAlive = PGProperty.TCP_KEEP_ALIVE.getBoolean(info);
~~~
の部分で行っています。
DBCP2の場合は、urlはjdbc:postgresql://localhost:5432/postgresのままで、以下の設定を追加することでもkeepaliveが有効になります。
props.setProperty("connectionProperties", "tcpKeepAlive=True");