Обработка взаимоблокировок при весенней загрузкеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Обработка взаимоблокировок при весенней загрузке

Сообщение Гость »


Я заметил, что в наших журналах время от времени появляется сообщение "ORA-00060: обнаружена взаимоблокировка во время ожидания ресурса".

Мне хотелось бы добавить лучший способ обработки взаимоблокировок в нашем коде.

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

Я обсуждаю два подхода:

Добавление этого повторного объекта в мой метод updateFoo(Foo foo):

@Retryable(maxAttempts = 3, откат = @Backoff(delay = 2000)) Или

Я наткнулся на эту статью: https://aniketkarne.com/handle-deadlock ... 3c83f272fc

Который говорит, что нужно сделать что-то вроде:

@Transactional(noRollbackFor = DeadlockLoserDataAccessException.class) затем добавьте try-catch для перехвата исключения DeadlockLoserDataAccessException, зарегистрируйте предупреждение и снова вызовите метод updateFoo. Хотя, возможно, мне придется добавить повторную попытку примерно три раза.

Первый будет повторять попытку всякий раз, когда вызов завершается неудачей, а другой повторяет попытку, когда возникает это исключение. Есть какие-нибудь мысли о лучших подходах или стратегиях?

Еще одна моя мысль заключалась в добавлении:

@Transactional(isolation = Isolation.SERIALIZABLE) который добавит блокировку и разрешит изменения только последовательно, но не уверен, предотвратит ли это взаимоблокировку?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»