34.1. Ограничения
Используя пул соединений, учтите следующие ограничения:
SSL-подключения в настоящее время не поддерживаются.
Длительные транзакции приостанавливают выполнение других сеансов, назначенных тому же обслуживающему процессу, так как процесс не может обслуживать следующий сеанс до завершения текущей транзакции. Следует избегать таких транзакций в сеансах, использующих пул, и установить параметр конфигурации idle_in_transaction_session_timeout или client_connection_check_interval, чтобы простаивающие транзакции завершались по тайм-ауту. Если же заранее известно, какими пользователями или в каких базах данных будут выполняться длительные транзакции, для них можно использовать выделенные обслуживающие процессы.
Уровень ошибки
FATAL: connection to client lost
(ВАЖНО: подключение к клиенту потеряно) понижен доERROR
(ОШИБКА). Если такая ошибка будет перехватываться, Postgres Pro не сможет завершать зависшие транзакции по тайм-ауту.Использование подготовленных транзакций (2PC) в сеансах, обслуживаемых пулом, возможно только если есть гарантия, что они будут завершаться в том же сеансе, в котором были подготовлены, и только при включённом параметре hold_prepared_transactions. Этот параметр допускает переключение процесса на другой сеанс только после того, как все подготовленные транзакции в текущем сеансе будут зафиксированы или отменены.
Встроенный пул соединений не поддерживает рекомендательные блокировки уровня сеанса (
pg_advisory_lock
) и выдаёт ошибку при попытке их использования.Модули с внутренним состоянием, связанным с сеансом, такие как plantuner, могут не работать при включённом пуле соединений.
Пул соединений несовместим со следующими расширениями:
multimaster
in_memory
online_analyze
pg_variables
При включённом пуле соединений изменение конфигурации других сеансов, описанное в Подразделе 9.26.1, не допускается.
Асинхронные уведомления не поддерживаются, поэтому использовать SQL-команды NOTIFY, LISTEN и UNLISTEN, а также функцию
pg_notify
нельзя.Решения 1С не поддерживаются, так как они используют собственный пул соединений.
Системы Windows в настоящее время не поддерживаются.
Тайм-аут idle_session_timeout не работает, когда включён пул соединений.