Thread: Connection remains idle for more than 15 minutes, then the connection drops by IPVS setting in k8s kube-proxy

Hi Tarkesh,

 

We are using libpq c client (Version : 14.10) of postgresql in our application to connect with postgresql database server (Version 14.10).

For making connection we are using libpq's API "PQsetdbLogin()".

 

Problem Statement : If our connection remains idle for more than 15 minutes, then the connection drops by IPVS setting in k8s kube-proxy.

 

Query : Is there any way we can provide values of "keepalives_idle, keepalives_interval, keepalives_count" client parameters in the API "PQsetdbLogin()" while creating the connection.

        If yes, then can someone please provide the sample code for the same.

                             We need these parameters support at client side only.

 

Is there any other alternative approach using some configuration files from client side?

 

Thanks,

Tarkeshwar

Hi all,

 

We are using libpq c client (Version : 14.10) of postgresql in our application to connect with postgresql database server (Version 14.10).

For making connection we are using libpq's API "PQsetdbLogin()".

 

Problem Statement : If our connection remains idle for more than 15 minutes, then the connection drops by IPVS setting in k8s kube-proxy.

 

Query : Is there any way we can provide values of "keepalives_idle, keepalives_interval, keepalives_count" client parameters in the API "PQsetdbLogin()" while creating the connection.

        If yes, then can someone please provide the sample code for the same.

                             We need these parameters support at client side only.

 

Is there any other alternative approach using some configuration files from client side?

 

Thanks,

Tarkeshwar

El día martes, marzo 05, 2024 a las 11:08:27 +0000, M Tarkeshwar Rao escribió:

> Hi all,
> 
> "
> We are using libpq c client (Version : 14.10) of postgresql in our application to connect with postgresql database
server(Version 14.10).
 
> For making connection we are using libpq's API "PQsetdbLogin()".
> 
> Problem Statement : If our connection remains idle for more than 15 minutes, then the connection drops by IPVS
settingin k8s kube-proxy.
 
> 
> Query : Is there any way we can provide values of "keepalives_idle, keepalives_interval, keepalives_count" client
parametersin the API "PQsetdbLogin()" while creating the connection.
 
>         If yes, then can someone please provide the sample code for the same.
>                              We need these parameters support at client side only.
> "
> 
> Is there any other alternative approach using some configuration files from client side?

An option could be to run the connection through an SSH tunnel and use
there the sshd(8) config parameter ClientAliveInterval.

HIH

    matthias

-- 
Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub

I am not at war with Russia.  Я не воюю с Россией.
Ich bin nicht im Krieg mit Russland.



Hi Matthias,

Currently many customers are using this. 
We want to use libpq library APIs only. Is there any support of keepalive at client side?

Regards
Tarkeshwar

-----Original Message-----
From: Matthias Apitz <guru@unixarea.de> 
Sent: Tuesday, March 5, 2024 4:59 PM
To: M Tarkeshwar Rao <m.tarkeshwar.rao@ericsson.com>
Cc: pgsql-general@postgresql.org; Piyush Anand <piyush.anand@ericsson.com>; Neeraj Gupta G
<neeraj.g.gupta@ericsson.com>
Subject: Re: Connection remains idle for more than 15 minutes, then the connection drops by IPVS setting in k8s
kube-proxy

El día martes, marzo 05, 2024 a las 11:08:27 +0000, M Tarkeshwar Rao escribió:

> Hi all,
> 
> "
> We are using libpq c client (Version : 14.10) of postgresql in our application to connect with postgresql database
server(Version 14.10).
 
> For making connection we are using libpq's API "PQsetdbLogin()".
> 
> Problem Statement : If our connection remains idle for more than 15 minutes, then the connection drops by IPVS
settingin k8s kube-proxy.
 
> 
> Query : Is there any way we can provide values of "keepalives_idle, keepalives_interval, keepalives_count" client
parametersin the API "PQsetdbLogin()" while creating the connection.
 
>         If yes, then can someone please provide the sample code for the same.
>                              We need these parameters support at client side only.
> "
> 
> Is there any other alternative approach using some configuration files from client side?

An option could be to run the connection through an SSH tunnel and use there the sshd(8) config parameter
ClientAliveInterval.

HIH

    matthias

--
Matthias Apitz, ✉ guru@unixarea.de,
https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-8bc62051d01460c7&q=1&e=8f12e60a-aafb-44bb-8a35-b4781b90d8c1&u=http%3A%2F%2Fwww.unixarea.de%2F
+49-176-38902045Public GnuPG key:
https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-a831eed841ce4cbb&q=1&e=8f12e60a-aafb-44bb-8a35-b4781b90d8c1&u=http%3A%2F%2Fwww.unixarea.de%2Fkey.pub

I am not at war with Russia.  Я не воюю с Россией.
Ich bin nicht im Krieg mit Russland.

On Tue, 2024-03-05 at 11:37 +0000, M Tarkeshwar Rao wrote:
> We want to use libpq library APIs only. Is there any support of keepalive at client side?

Yes, there is.

Just add "keepalives_idle=60" to the connection string.  See
https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-KEEPALIVES-IDLE

Yours,
Laurenz Albe