Превышено время ожидания блокировки транзакции NDB CannotAcquireLockException - PullRequest
0 голосов
/ 27 сентября 2018

Я использую кластер MySQL NDB с архитектурой мастер-мастер.Насколько я понимаю, если я буду искать некоторые данные, не основанные на идентификаторах, это затронет все узлы NDB.Если один узел не может получить блокировку, потому что строка заблокирована другой транзакцией и истекло время ожидания, я получу исключение «Время ожидания блокировки».

Приложение, которое подключается к этой БД, - это стандартная пружинная загрузка с hibernate (база данных-платформа: org.hibernate.dialect.MySQL5InnoDBDialect database: MYSQL)

Некоторые транзакции доступны только для чтения,Транзакция, выполняющая чтение, подходит для значений до или после (относительно другой транзакции).Согласно это , если я не добавлю "LOCK IN SHARE MODE".это произойдет естественным образом.

Мой метод помечен: @Transactional(readOnly = true) Есть ли что-то еще, что я должен сделать, чтобы убедиться, что мое приложение просто читает, не ожидая или не блокируя другую транзакцию?

...