Остановить или завершить длительный запрос в JDBC

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

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

в SQL Plus

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

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

 eis08 июн. 2012 г., 12:45
Да, так и должно быть. Увидетьthis question.
 assylias08 июн. 2012 г., 12:43
This solution может быть реализован драйвером Oracle.

Ответы на вопрос(3)

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

Решение Вопроса

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

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

 06 июн. 2017 г., 11:57
@supertonsky Я не знаю о такой функциональности.
 06 июн. 2017 г., 11:09
Я хотел бы позволить пользователю решать, когда прекратить запрос. Можно ли это изменить во время выполнения и реализовать что-то вроде скользящего тайм-аута?
 Azi09 июн. 2012 г., 13:04
Хорошо, отметил. Благодарю.

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

Ваш ответ на вопрос