Обсуждение: Connection Timeout Issue due to intermittent non-response of Postgre database

Поиск
Список
Период
Сортировка

Connection Timeout Issue due to intermittent non-response of Postgre database

От
이상원
Дата:
Hi. Guru...

We are currently applying and testing Postgre Database version 16.0 in the web application. The technology stack of the web application is as follows.

- DB OS: Rocky Linux 9.2
- Spring 5.0 Framework (not Spring Boot)
- Java: OpenJDK 17
- WAS: Tomcat 9.0

The Postgre database does not respond intermittently, causing a connection timeout in the Spring Framework. There is no regularity in the occurrence of connection timeouts and they do not repeat continuously. Not easy to track.

Do you have any experience with cases like this? If you have experience, we need your help to solve the problem.

First, I will try to downgrade to version 15.4 to determine whether it is a software problem or a network and server environment.

Re: Connection Timeout Issue due to intermittent non-response of Postgre database

От
Tom Lane
Дата:
=?UTF-8?B?7J207IOB7JuQ?= <swlee.kioplo@gmail.com> writes:
> The Postgre database does not respond intermittently, causing a connection
> timeout in the Spring Framework. There is no regularity in the occurrence
> of connection timeouts and they do not repeat continuously. Not easy to
> track.

I'd try turning on statement logging, and maybe also statement duration
logging, and then matching up the times of observed client-side outages
with what's happening according to the postmaster log.  Connection
and disconnection logging might be useful too.

A likely bet about the root cause is an unreasonably short connection
timeout in some network infrastructure between your client and the
database server.  That would manifest as both sides reporting that the
other side disconnected (not necessarily at the same time, but for the
same connection).  If so, it could likely be cured by adjusting the
database's TCP keepalive settings.  But you ought to gather data
first.

            regards, tom lane



Re: Connection Timeout Issue due to intermittent non-response of Postgre database

От
이상원
Дата:
Thanks, I'll check it out. then, I will update to all.

2023년 11월 5일 (일) 오전 12:33, Tom Lane <tgl@sss.pgh.pa.us>님이 작성:
이상원 <swlee.kioplo@gmail.com> writes:
> The Postgre database does not respond intermittently, causing a connection
> timeout in the Spring Framework. There is no regularity in the occurrence
> of connection timeouts and they do not repeat continuously. Not easy to
> track.

I'd try turning on statement logging, and maybe also statement duration
logging, and then matching up the times of observed client-side outages
with what's happening according to the postmaster log.  Connection
and disconnection logging might be useful too.

A likely bet about the root cause is an unreasonably short connection
timeout in some network infrastructure between your client and the
database server.  That would manifest as both sides reporting that the
other side disconnected (not necessarily at the same time, but for the
same connection).  If so, it could likely be cured by adjusting the
database's TCP keepalive settings.  But you ought to gather data
first.

                        regards, tom lane

Re: Connection Timeout Issue due to intermittent non-response of Postgre database

От
Dave Cramer
Дата:


On Sun, 5 Nov 2023 at 19:45, 이상원 <swlee.kioplo@gmail.com> wrote:
Thanks, I'll check it out. then, I will update to all.

2023년 11월 5일 (일) 오전 12:33, Tom Lane <tgl@sss.pgh.pa.us>님이 작성:
이상원 <swlee.kioplo@gmail.com> writes:
> The Postgre database does not respond intermittently, causing a connection
> timeout in the Spring Framework. There is no regularity in the occurrence
> of connection timeouts and they do not repeat continuously. Not easy to
> track.

I'd try turning on statement logging, and maybe also statement duration
logging, and then matching up the times of observed client-side outages
with what's happening according to the postmaster log.  Connection
and disconnection logging might be useful too.

A likely bet about the root cause is an unreasonably short connection
timeout in some network infrastructure between your client and the
database server.  That would manifest as both sides reporting that the
other side disconnected (not necessarily at the same time, but for the
same connection).  If so, it could likely be cured by adjusting the
database's TCP keepalive settings.  But you ought to gather data
first.

I would have to agree that it is very likely a network issue.

Dave