Hibernate LockOptions с тайм-аутомJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Hibernate LockOptions с тайм-аутом

Сообщение Anonymous »

В моем проекте есть механизм блокировки строк для версии спящего режима 3.3.2.GA, мы планируем перейти на спящий режим 5. Я планирую заставить этот запрос работать и в более старых, и в новых версиях спящего режима.
Это существующий запрос в спящем режиме 3.3.2.GA.

Этот запрос заблокирует строку, если она заблокирована в сеансе. уже, будет ждать истечения времени и выбрасывать время, если оно превысит.

Код: Выделить всё

Query query = session.getNamedQuery("select aps from WritableSchool aps where aps.schoolCd = :schoolCd");
query.setParameter("schoolCd", schoolCd);
query.setTimeout(2); // seconds
query.setLockMode("aps", LockMode.UPGRADE);
List schools = query.list();
Когда мы обновляемся до версий гибернации 4/5, тайм-аут не работает, он вечно ждет получения блокировки, если таблица уже заблокирована в сеансе.

Когда мы обновляемся до версий гибернации 4/5, тайм-аут не работает, он ждет вечной блокировки, если таблица уже заблокирована в сеансе. p>

В спящем режиме 4 с тем же кодом я пытался заменить блокировку и тайм-аут таким образом

Код: Выделить всё

query.setLockOptions(new LockOptions(LockMode.UPGRADE).setTimeOut(100));
Тайм-аут по-прежнему не работает.

Я попробовал другой способ: ну.

Код: Выделить всё

session.buildLockRequest(LockOptions.NONE).setLockMode(LockMode.UPGRADE).setTimeOut(2000).lock(school);
Он выполняет select.. для обновления, но не соблюдает тайм-аут, однако я реализую.

Единственное решение, которое в настоящее время у меня есть, - это переопределить диалект оракула спящего режима и установить для метода mustUseFollowOnLocking() значение false, что также приведет к тайм-ауту блокировки и соблюдения.

Мне интересно, почему тайм-аут Lockoptions в спящем режиме не соблюдается одинаково. Если у кого-нибудь есть какие-либо идеи о блокировках и тайм-ауте в спящем режиме, пожалуйста, помогите, спасибо.

Подробнее здесь: https://stackoverflow.com/questions/435 ... th-timeout
Ответить

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

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

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

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

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