Я ищу способ контролировать время ожидания сеанса клиента PGSQL (9.0) (Windows).
Когда сеанс умирает?Что случилось с ними после смерти.
Как я могу заставить Сессию умереть?(Например, он «заблокирован» при неправильном длинном запросе, и я хочу заставить сервер освободить ресурсы).
Спасибо за это: dd
Я расширяюэто, чтобы понять это: базы данных должны знать, какой сеанс мертв.Мертвая сессия должна быть освобождена, потому что она только удерживает ресурсы, и если эта операция не завершена, мы должны получить много блокировок или мы можем выйти из доступных соединений (достичь максимума).
Другие базы данных (FireBird, EDB) определяет для него параметр TimeOut.
Когда он достигнут, сеанс устарел, а пользовательское соединение прервано.
Чтобы избежать исчерпания, вам нужно периодически что-то делать, что расширяетperiod.
Существует 3 способа достичь времени ожидания: 1.) клиентская программа зависла, зависла или закрылась.2.) сетевое соединение разорвано 3.) клиент отправляет очень длинный запрос / хранимую процедуру, которая не завершается.
Если тайм-аут не обработан сервером, возможно, чья-то транзакция, блокировка и т. Д. Еще живыX часов, и у вас есть только один способ удалить его: перезапустить службу db-сервера.
Другие базы данных обрабатывают мертвые сеансы, так как они больше не взаимодействуют с сервером, поэтому клиент получил некоторую ошибку, ему нужноперезапустите клиентское программное обеспечение.
Некоторые базы данных поддерживают возврат к «неактивному», но «не мертвому» сеансу, и они могут продолжить работу.
Итак, с этим предисловием я задаю свой вопросеще раз:
- Как я могу контролировать время ожидания сеанса клиента под pgsql?Системная переменная, параметр SQL и т. Д.
- Как мне продлить это время?
- Что произойдет, если длинный запрос исчерпывает период?
- Когда сервер pgsql выпускаетресурсы, удерживаемые клиентом?
Спасибо: дд