В моем приложении, которое использует подключение Apache JDBC для подключения к базе данных, я иногда получаю "java.sql.SQLRecoverableException". После поиска основной причины я смог узнать, что это может быть вызвано прекращением соединения со стороны сервера Oracle. Я использую версию Oracle 11G.
Теперь мое требование состоит в том, чтобы перед выполнением любого запроса я должен был убедиться, что соединение все еще действует и не прерывается. Мне нужно установить новое соединение, если соединение было прервано с конца оракула.
Я не уверен, как мне этого добиться или проверить. Я попытался получить сессию из запроса ниже:
select * from v$session where username is not null;
Отображает один результат, когда у меня открыт SQL Developer, а также открыты приложения (2 приложения, использующие одинаковые учетные данные пользователя). Я хочу знать, как прекратить соединение с SQL и воспроизвести «SQLRecoverableException» для тестирования, а также повторно подключиться к базе данных после возникновения проблемы.
Поскольку я новичок в соединениях с базой данных, я не уверен, что делать или на что обратить внимание, чтобы добиться этого. Пожалуйста, помогите мне с этим.
Мое подключение JDBC в spring-servlet.xml приведено ниже:
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${myjdbc.driverClassName}" />
<property name="url" value="${myjdbc.url}" />
<property name="username" value="${myjdbc.username}" />
<property name="password" value="${myjdbc.password}" />
</bean>
<context:property-placeholder location="classpath:myjdbc.properties" />