2010-07-02 5 views
0

Я обнаружил, что в сеансовом компоненте при использовании транзакций, управляемых контейнером, транзакция может быть выполнена для присоединения к существующей клиентской транзакции с использованием транзакционных атрибутов, таких как REQUIRED/SUPPORTS.Может ли транзакция BMT с существующей транзакцией?

При использовании Bean-Managed-Transaction существует ли способ сделать транзакцию с существующей клиентской транзакцией?

ответ

3

Нет (см. § 13.6.1 и § 13.6.2 в спецификации).

Но зачем вам это делать? Если бит предназначен для того, чтобы присоединиться к транзакции, запущенной где-то в другом месте, просто сделайте, если CMT с REQUIRED. Это та же ситуация, когда бит BMT, который можно назвать другим компонентом. Бит BMT контролирует демаркацию транзакции, а другой компонент использует CMT для присоединения к транзакции.

Обратите внимание, что в спецификации термин «клиент» относится к вызывающему компоненту компонента, он может быть другим компонентом, автономным клиентом или внешним клиентом (например, запрос веб-службы).

+0

+1 к точке! –