Вопрос по java, oracle, jdbc – Остановить или завершить длительный запрос в JDBC

7

Есть ли способ остановить или прекратить длительный запрос Oracle в JDBC? Это часто заканчивается перезапуском сервера приложений, чтобы заставить jdbc отключиться от БД Oracle.

Ищете функциональность, аналогичную SQL Plus -Kill session в Java или JDBC

в SQL Plus

SQL> ALTER SYSTEM KILL SESSION 'sid,serial#';

любой ключ, чтобы выступить в Java?

Да, так и должно быть. Увидетьthis question. eis
This solution может быть реализован драйвером Oracle. assylias

Ваш Ответ

3   ответа
7

Если не считать тайм-аут jdbc, если вы выполняете запрос в другом потоке, вы можете использовать Statement.cancel (), чтобы убить его.

6

Возможно, откусил, но я бы предложил использоватьJDBC Timeout вместо. Это имеет дополнительное преимущество, заключающееся в том, что он фактически завершается изящно, а не силой.

На современных серверах приложений вы обычно можете определить время ожидания JDBC из конфигурации источника данных.

@supertonsky Я не знаю о такой функциональности.
Хорошо, отметил. Благодарю. Azi
Я хотел бы позволить пользователю решать, когда прекратить запрос. Можно ли это изменить во время выполнения и реализовать что-то вроде скользящего тайм-аута?
1

Вы можете попробовать Statement.setQueryTimeout

Похожие вопросы