Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

Ошибка PostgreSQL 08003 connection_does_not_exist: несуществующее соединение

Обновлено: 26.08.2026  ·  Официальная база знаний

Клиентское приложение пытается отправить SQL-запрос или команду через дескриптор соединения, которое уже было закрыто сервером, пулером соединений или клиентом:

ERROR: connection does not exist
-- либо:
FATAL: client connection has been closed
SQLSTATE: 08003

1. Проверка таймаутов неактивности в postgresql.conf

Сервер PostgreSQL может принудительно закрывать сессии, превысившие лимиты ожидания:

-- Проверка лимитов простоя сессий
SHOW idle_session_timeout;
SHOW idle_in_transaction_session_timeout;

Если параметры заданы слишком агрессивно, увеличьте их:

ALTER SYSTEM SET idle_session_timeout = '2h';
SELECT pg_reload_conf();

2. Корректировка настроек пула соединений в 1С:Предприятие

В кластере серверов 1С настройте параметры очистки спящих соединений:

  1. Откройте Консоль администрирования серверов 1С.
  2. В свойствах информационной базы проверьте параметры:
    • Время засыпания пассивных сеансов (рекомендуется не менее 1200 сек);
    • Время завершения спящих сеансов (рекомендуется не менее 86400 сек).

3. Настройка PgBouncer (если используется)

В конфигурационном файле pgbouncer.ini проверьте параметры:

[pgbouncer]
server_idle_timeout = 600
client_idle_timeout = 0
query_timeout = 0
suspend_timeout = 10

4. Обработка переподключения на уровне клиентского кода

При прямой интеграции с базой реализуйте перехват ошибки и переинициализацию соединения:

-- Пример логики повторного подключения при сбое:
BEGIN
  -- Выполнение запроса
EXCEPTION WHEN connection_does_not_exist OR sqlclient_unable_to_establish_sqlconnection THEN
  -- Реинициализация пула и повтор транзакции
END;
Практический опыт инженера: Для стабильной работы высоконагруженных баз 1С:Предприятие на PostgreSQL отключайте любые энергосберегающие функции сетевых адаптеров (Green Ethernet, Energy Efficient Ethernet) на физических сетевых картах серверов.

Частые вопросы (FAQ)

Почему 08003 возникает при использовании PgBouncer в режиме transaction pooling?

В режиме transaction pool соединение возвращается в общий пул сразу после завершения транзакции. Если клиент пытается выполнить команду вне транзакционного контекста в старый дескриптор, генерируется ошибка отсутствия соединения.

Как очистить «мертвые» сеансы в базе 1С без перезагрузки кластера?

В консоли администрирования 1С перейдите в раздел 'Сеансы', выберите неактивные сеансы с признаком 'Спящий' и вызовите команду 'Удалить'.

Может ли антивирус или EDR блокировать соединения и вызывать 08003?

Да, средства глубокого анализа трафика (DPI/SSL Inspection/EDR) могут принудительно разрывать длительные TCP-сессии между сервером 1С и СУБД, интерпретируя их как аномальную активность.

Как зафиксировать момент разрыва соединения в журнале PostgreSQL?

Включите в postgresql.conf параметры: log_connections = on и log_disconnections = on. В журнале будет точно указано время и причина отключения клиента.