Закрытие соединения из пула во время исполнения oracle-data-source - PullRequest
2 голосов
/ 23 июня 2019

У меня есть устаревшее веб-приложение.Witch использует jdbcTemplate для выполнения хранимых процедур из БД (Oracle), процедур, расположенных в пакетах.Проблема заключается в том, что когда разработчики базы данных компилируют пакеты, которые я получаю в качестве исключений, например, изменилось существующее состояние пакетов (ora 4061).и они делают это 1 или 2 раза в неделю.Затем я должен перезапустить приложение, чтобы перезапустить пул.Приложение использует OracleDataSource.Я не могу ничего изменить в этой БД, но могу сменить менеджера пула.так что вопрос в том.возможно ли закрыть это соединение?не просто вернуться в бассейн.и получить новое соединение (из пула), если это исключение появляется?спасибо !!

люди предложили повторно выполнить эту хранимую процедуру, когда эта ошибка появляется.Это сработало.

<bean id="ds_name" class="oracle.jdbc.pool.OracleDataSource"
      destroy-method="close">
    <property name="connectionCachingEnabled" value="true" />
    <property name="URL" value="****" />
    <property name="user" value="user" />
    <property name="password" value="pass" />
    <property name="connectionCacheProperties">
        <value>
            MinLimit:1
            MaxLimit:100
            InitialLimit:1
            ConnectionWaitTimeout:120
            InactivityTimeout:180
            ValidateConnection:true
        </value>
    </property>
</bean>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="ds_name" />
</bean>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...