Я прошу прощения, если это кажется тривиальным, но я просто не могу найти никакого ответа на эту проблему.У меня есть веб-приложение Java на сервере Tomcat, которое настроено с Oracle Database 12c в контексте веб-приложения (JNDI).Не используется специальная среда (например, Spring), только все, что находится в пакетах java.sql и javax.sql.
В веб-приложении, если данные изменяются в индексированных столбцах, изменения будутбудет отображаться в веб-приложении при повторном запросе.Если изменение внесено в столбец, который не проиндексирован, изменение не отображается (но данные изменяются, если вы проверяете таблицу напрямую или перезагружаете Tomcat и проверяете).Запросы - это просто запросы на обновление, ничего сложного.
Я думаю, что это как-то связано с тем, как Tomcat разделяет сеансы, потому что если вы перезапустите сервер Tomcat (остановка / запуск), изменения будут
Вот конфигурация контекста (только часть ресурса):
<resource
name="jdbc/database"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@database.address.com:1521:sid"
username="user"
password="pass"
maxActive="100"
maxIdle="10"
minIdle="3"
testWhileIdle="true"
validationQuery="select 1 from dual"
validationInterval="34000"
timeBetweenEvictionRunsMillis="34000"
numTestsPerEvictionRun="10"
minEvictableIdleTimeMillis="50000"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true"
testOnBorrow="true"
/>
Я читал о кэшах операторов, но я не уверен, что проблема в кеше операторовтолько результаты, по-видимому, кэшируются и не обновляются при повторном запросе (если кэши операторов не хранят эту информацию, я думал, что они предназначены только для самих запросов, а не наборов результатов).Есть ли способ заставить соединение с базой данных не использовать старые результаты с Oracle?
Любая помощь приветствуется, спасибо.