Подтвердить что ты не робот

Как установить таймаут запроса на PreparedStatement?

Есть ли способ получить Connection.prepareStatement(), чтобы выбросить ошибку или вернуться, вместо ожидания блокировки строки?

Я пытаюсь реализовать кросс-процессную синхронизацию с использованием подготовленного оператора, который я не совершаю, поэтому он захватывает блокировку записи в определенной строке. В других процессах он пытается подготовить инструкцию sql, а затем зависает, пока исходный процесс заканчивается. Мне нужно это, чтобы я знал, что он висит, поэтому я могу остановить функцию и повторять попытку, когда он будет перенесен.

Любые идеи? Я много дней искал в Интернете и не могу найти да/нет.

4b9b3361

Ответ 1

Я дурак, я понял это вчера и просто забыл...

Чтобы решить эту проблему, сделайте

preparedstatement = con.prepareStatement(query);
preparedstatement.setQueryTimeout(seconds);

а затем просто поймайте исключение.