Ниже я понимаю, что JTA / JTS обрабатывают проблему истечения времени ожидания транзакции.Но я не могу найти свой документ или материал, подтверждающий мое понимание.Правильно ли я понимаю?Знаете ли вы, какие материалы относятся к этой проблеме?
Сервер приложений выполняет итерацию всех транзакций для проверки тайм-аута.Если происходит тайм-аут транзакции, сервер приложений помечает откат транзакции и регистрирует детали. Но сервер приложений не генерирует исключение и не прерывает транзакцию в этот момент. Когда поток транзакции продолжает пытаться получить доступ к другому транзакционному ресурсу (например, JDBC / JMS), транзакционный ресурс, который реализует интерфейс JTA, проверит флаг откатасначала, прежде чем идти дальше.Затем в этот момент возникает исключение RollbackException.
==========
Тестовый пример 1: установите время ожидания транзакции равным 10 с
I.Начало сделки
II.Сон 20 секунд
III.Отключение системы «Конец ожидания»
Результат: Тайм-аут наступает через 10 секунд, и выход из системы регистрирует подробности тайм-аута, но не вызывает исключение.Будет напечатан «конец в спящем режиме».
==========
Тестовый пример 2: установите время ожидания транзакции на 10 секунд
I.Начало сделки
II.Сон 20 секунд
III.Доступ к БД 1-й раз
IV.Доступ к БД 2-й раз
V.Выход системы из режима ожидания "Sleep end"
Результат: Тайм-аут наступает через 10 секунд, и выход из системы регистрирует сведения о тайм-ауте, но не вызывает исключение.Исключение выдает при доступе к дб 1 раз.«Конец сна» не будет напечатан.
========= *
Тестовый пример 3: установите тайм-аут транзакции на 10 секунд
I.Начало сделки
II.Access db and db deadlock
Результат: Тайм-аут наступает через 10 секунд, и выход из системы регистрирует подробности тайм-аута.Нет исключений, поток транзакций застрял. Таким образом, управление тайм-аутом транзакции не может справиться с проблемой тайм-аута в БД. Я так растерялся по этому поводу.
В моем понимании вышеупомянутое поведение должно быть таким же при использовании весеннего управления транзакциями (JTA) и EJB.Я прав?
Спасибо за вашу помощь!