Ошибка системного вызова SSL: Время ожидания операции истекло | pgAdmin 4, Postgres

#postgresql #pgadmin-4

Вопрос:

Я сталкиваюсь с постоянными тайм-аутами, если я оставляю сеанс бездействующим более чем на 60 секунд или около того, а затем пытаюсь выполнить запрос.

pgAdmin4, версия 5.7 (4280,88) PostgreSQL 13.4

ОШИБКА: Ошибка системного вызова SSL: Время ожидания операции истекло

Оба они имеют значение 0.

 SHOW statement_timeout;
SHOW idle_in_transaction_session_timeout;
 

Кто-нибудь может сказать мне, как это исправить?

Мне нужно повторно подключить сеанс, чтобы он заработал, и таким образом все временные таблицы будут потеряны.

Ответ №1:

Это похоже на неправильно настроенный сетевой компонент, который прерывает соединение, когда оно простаивает.

Типичный способ борьбы с этим-настроить TCP keepalive либо в операционной системе, либо на сервере PostgreSQL, используя tcp_keepalives_idle параметр или параметр подключения клиента libpq keepalives_idle (хотя я думаю, что вы не можете использовать строки подключения с pgAdmin).

Комментарии:

1. show tcp_keepalives_idle дает значение 240 на pgadmin. Есть ли способ это изменить?

2. Конечно. Редактируйте postgresql.conf на сервере базы данных или используйте ALTER SYSTEM . Не забудьте перезагрузить сервер.

3. У меня нет прав суперпользователя. ERROR: must be superuser to execute ALTER SYSTEM command Нет ли решения изменить это локально в моем pgadmin? Потому что эта проблема возникла только после того, как я сделал новую установку pgadmin(последняя версия)

4. Вам придется попросить администратора базы данных изменить этот параметр.