JDB C Шаблон, случайно возвращающий пустые наборы результатов - PullRequest
1 голос
/ 06 мая 2020

Я долго ломал голову над этим, но безуспешно.

Предпосылки: У меня есть Java веб-приложение, работающее с Spring MVC на Tomcat 8 . У меня есть стандартный коннектор JBD C, настроенный на моем сервере. xml файл следующим образом (я пропустил строку подключения):

auth="Container"
type="javax.sql.DataSource"
driverClassName="easysoft.sql.jobDriver"
initialSize="2"
maxTotal="3"
minIdle="1"
maxIdle="2"
maxWaitMillis="30000" 
removeAbandonedOnBorrow="true"
removeAbandonedTimeout="300"
logAbandoned="true"
validationQuery="SELECT 1"

Источник данных - файл MS Access .ACCDB

Я использую JDBCTemplate для выполнения своих подготовленных операторов.

Я использую эту настройку более 3 лет и никогда не сталкивался с проблемой, с которой столкнулся сейчас.

Проблема: По прошествии случайного промежутка времени (часы, дни, недели ... ничего согласованного) мой запрос начинает отправлять обратно пустой набор результатов. Данные не меняются, данные должны возвращаться, но они просто продолжают возвращаться пустыми. Затем, еще через несколько минут (минут, часов ... тоже случайным образом), запрос начинает отправлять обратно соответствующий набор результатов. Перезапуск Tomcat также немедленно устраняет проблему. Когда возникает эта проблема, очевидно, что нет ничего необычного.

Дополнительная информация

Я отслеживал эту проблему около 2 месяцев, используя jConsole для проверки статистики JVM и JMX mBeans самого соединения, и ничего не выходит обычный.

В смеси также есть два других источника данных Access, которые не испытывают этой проблемы с точно такой же конфигурацией, расположены на том же сервере и будут запрашиваться так же часто, как и проблема c источник данных.

Ошибки не регистрируются (память, пул соединений, SQL ошибки), набор результатов просто начинает становиться пустым.

Я ищу любые отзывы или мысли, где иначе я мог бы попытаться выяснить, что происходит.

...