#java #jdbc
#java #jdbc
Вопрос:
Есть ли способ установить соединение.prepareStatement() для выдачи ошибки или возврата вместо ожидания блокировки строки?
Я пытаюсь реализовать межпроцессную синхронизацию с использованием подготовленного оператора, который я не фиксирую, поэтому он захватывает блокировку записи в определенной строке. В других процессах он пытается подготовить инструкцию sql, затем зависает, пока исходный процесс завершается. Мне нужно это, чтобы сообщить мне, что он зависает, чтобы я мог остановить функцию и повторить попытку всякий раз, когда она будет перенесена.
Есть идеи? Я уже несколько дней гуглю и, похоже, не могу найти ответа «да» / «нет» на этот вопрос.
Комментарии:
1. Может быть специфичным для базы данных — какую СУБД вы используете?
2. Будет сделано по истечении 8 часов.
Ответ №1:
Я дурак, я понял это вчера и просто забыл…
Чтобы решить эту проблему, выполните
preparedstatement = con.prepareStatement(query);
preparedstatement.setQueryTimeout(seconds);
а затем просто перехватите исключение.
Комментарии:
1. В документации ничего не говорится о
@since Java 7,
, и никто другой тоже.2. Я также не смог найти доказательства, но я и не искал так уж усердно. Я удалил его.