У меня проблема, когда базовые запросы из приложения tomcat приводят к тому, что весь процесс postgres переходит в состояние «простаивает в транзакции».
Это связано с тем, что по некоторым причинам запросы никогда не завершаются. Относится к проблеме с приложением и поднятой проблеме с разработчиком приложения, и они изучают.
Поскольку tomcat считает, что запрос все еще активен, он никогда не выполняет откат или фиксацию и зависает.
Я могу убить процессы «простоя в транзакции», но tomcat не очищает автоматически прерванные соединения и не запускает новые без перезапуска tomcat.
Есть ли способ заставить tomcat очистить брошенное соединение?
labkey | 8195 | 2018-04-17 10:53:17.002785+01 | | idle in transaction
labkey | 8359 | 2018-04-17 10:53:16.632977+01 | | idle in transaction
labkey | 8249 | 2018-04-17 10:53:16.631433+01 | | idle in transaction
labkey | 8250 | 2018-04-17 10:53:17.173161+01 | | idle in transaction
labkey | 8251 | 2018-04-17 10:53:16.194544+01 | | idle in transaction
labkey | 8358 | 2018-04-17 10:53:16.634106+01 | | idle in transaction
labkey | 8362 | 2018-04-17 10:53:14.843128+01 | | idle in transaction
labkey | 8382 | 2018-04-17 10:53:15.903067+01 | | idle in transaction
Может быть, слово «повторное использование» неправильное. Но вынуждая tomcat очищать оставленные соединения и запускать новые без перезапуска tomcat. Спасибо
Tomcat никогда не выпустит COMMIT или ROLLBACK. Это зависит от приложения. Драйверы в JDBC-совместимом режиме будут выдавать COMMIT при сбросе в режим auto-commit, предполагая, что ваш пул соединений настроен на раздачу соединений в auto-commit.
Как вы определяете «заброшенный»? Приложения обычно используют пул соединений, который намеренно поддерживает соединения с базой данных, чтобы избежать накладных расходов на создание нового физического соединения для каждого соединения, требуемого приложением. Обычно это рассматривается как оптимизация производительности.




Что вы имеете в виду под «повторным использованием процесса»? Если вы разорвете соединение, то после этого уже нечего "повторно использовать".