Я использую пакет pool
для Shiny-приложения, которое устанавливает соединение с моей PostgreSQL-БД.Время от времени я получаю сообщение об ошибке ниже без запуска приложения.Также, когда я запускаю код локально, появляется та же ошибка, а иногда и несколько раз.
Предупреждение в postgresqlQuickSQL (conn, Statement, ...): Не удалось создать execute: SELECT 1 Ошибка в postgresqlExecStatement (conn, Statement, ...): Драйвер RS-DBI: (не удалось выполнить оператор: нет соединения с сервером)
Это потому, что пул создает соединение с БД и через некоторое времяБД (или сервер) отключается из-за истечения времени ожидания?
Во всяком случае, нигде в моем коде я не делаю SQL-запрос с SELECT 1
внутри.
- запрос приходит из самого пула (
validateQuery()
)? - Как я могу предотвратить эту ошибку?
В моем ShinyApp также имеется следующий код для завершения подключения к пулу после закрытия приложения:
session$onSessionEnded(function() {
pool::poolClose(pool)
})
Кроме того, при запуске ShinyApp приложение работает нормально и ведет себя как положено.Но когда я закрываю приложение, RStudio часто дает сбой , и мне приходится снова открывать его и перезагружать проект.
- Почему это так?
- Как узнать, что вызвало сбой?