Читаем Изучаем Java EE 7 полностью

АтрибутОписание
REQUIREDЭтот атрибут (задан по умолчанию) означает, что метод всегда должен вызываться внутри транзакции. Контейнер создает новую транзакцию, если метод вызывается из клиента, не использующего транзакции. Если клиент имеет контекст транзакций, бизнес-метод запускается внутри транзакции клиента. Вам следует указывать атрибут REQUIRED в том случае, когда вызываются методы, которые должны использовать транзакции, но при этом нельзя однозначно сказать, использует клиент транзакции или нет
REQUIRES_NEWКонтейнер всегда создает новую транзакцию перед тем, как начать выполнять метод. Независимо от того, имеет ли клиент контекст транзакции, контейнер временно приостанавливает эту транзакцию, создает новую, фиксирует или откатывает ее, а затем возобновляет первую транзакцию. Это означает, что успех или провал второй транзакции не имеет никакого эффекта для существующей транзакции клиента. Вам следует указывать атрибут REQUIRES_NEW, если вы не хотите выполнять откат транзакции, который мог бы затронуть клиент
SUPPORTSМетод EJB наследует контекст транзакции клиента. Если контекст транзакции доступен, он используется этим методом, в противном случае контейнер вызывает метод без контекста транзакции. Вам следует указывать атрибут SUPPORTS, если у вас есть доступ к базе данных только для чтения
MANDATORYКонтейнер требует наличия транзакции перед вызовом бизнес-метода, но не станет создавать новый контекст. Если клиент имеет контекст транзакции, он используется, в противном случае генерируется исключение javax.ejb.EJBTransactionRequiredException
NOT_SUPPORTEDМетод EJB не может быть вызван при наличии контекста транзакции. Если клиент не имеет контекста транзакции, ничего не происходит, в противном случае контейнер приостанавливает транзакцию клиента, вызывает метод, а затем, как только метод отработает, возобновляет транзакцию
NEVERМетод EJB не должен вызываться из клиента, использующего транзакции. Если клиент имеет контекст транзакции, контейнер генерирует исключение javax.ejb.EJBException


На рис. 9.6 проиллюстрированы все возможные варианты поведения, которые EJB может иметь в зависимости от наличия контекста транзакции у клиента. Например, если метод createBook() не имеет контекста транзакции (верхняя часть рисунка) и вызывает метод addItem(), имеющий атрибут MANDATORY, то генерируется исключение. В нижней части рис. 9.6 показаны те же комбинации, но для клиента, который имеет контекст транзакции.


Рис. 9.6. Два вызова InventoryEJB, осуществленные при различной политике транзакций


Перейти на страницу:

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT