#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. Вам придется попросить администратора базы данных изменить этот параметр.