Как CMT и BMT управляются в EJB?

Как управляются CMT и BMT?

Насколько я понимаю, транзакции, управляемые контейнером, достигаются с помощью JTA, который поддерживается сервером приложений, а не веб-серверами, такими как tomcat.

CMT обрабатывается реализацией диспетчера транзакций, специфичной для каждого сервера приложений, который внутренне считывает ejb-jar.xml и применяет поведение.

BMT разграничены с помощью класса пользовательских транзакций в java API.

Верно ли приведенное выше понимание?


person M Sach    schedule 17.07.2011    source источник


Ответы (1)


Да, это правильно. Еще немного деталей транзакции:

Для CMT контейнер EJB также отвечает за реализацию EJBContext.setRollbackOnly и isRollbackOnly путем делегирования текущей транзакции отката транзакции при возникновении исключения.

Для BMT контейнер EJB также отвечает за создание исключения, если UserTransaction не зафиксирована до завершения метода для SLSB и singleton. Для SFSB он отвечает за приостановку пользовательских транзакций в конце метода и возобновление их при следующем вызове метода.

person Brett Kail    schedule 17.07.2011