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

Управление транзакциями — важная задача для предприятий. Оно позволяет приложениям иметь согласованные данные и обрабатывать их надежным образом. Управление транзакциями осуществляется на низком уровне, разработчик бизнес-логики не должен заниматься этим. EJB предоставляет довольно простые службы для реализации этой особенности: можно делать это либо программно с высоким уровнем абстракции, либо декларативно, используя метаданные. С момента выхода Java EE 7 Managed Beans также имеет место подобный декларативный механизм.

Большая часть работы корпоративных приложений заключается в управлении данными: их хранении (как правило, в базе данных), получении, обработке и т. д. Часто это делается одновременно, несколько приложений пытаются получить доступ к одним и тем же данным. База данных имеет низкоуровневые механизмы сохранения параллельного доступа, такие как пессимистичные блокировки, и использует механизм транзакций для обеспечения сохранности данных. EJB также пользуется этими механизмами.

Я посвящаю первую часть этой главы описанию управления транзакциями в целом. Далее мы обсудим различные типы разграничения транзакций, поддерживаемых EJB: СМТ и BTM. Закончится эта глава рассмотрением нового перехватчика транзакций, который может быть использован в Managed Beans.

Понимание транзакций

Данные имеют решающее значение для бизнеса, и они должны быть точными независимо от операций, которые вы выполняете, а также от количества приложений, одновременно получающих доступ к данным. Транзакция используется для обеспечения того, что данные хранятся в устойчивом состоянии. Она представляет собой логическую группу операций, которые должны быть выполнены в виде единого блока, также известную как единица работы. Эти операции могут включать сохранение данных в одну или несколько баз данных, отправку сообщений в MOM (промежуточное ПО, ориентированное на обработку сообщений) или вызов веб-служб. Компании полагаются на операции каждый день, работая с приложениями банкинга и электронной коммерции либо взаимодействуя с бизнесом партнеров.

Эти неделимые бизнес-операции выполняются либо последовательно, либо параллельно в течение относительно короткого промежутка времени. Каждая операция должна быть завершена успешно для того, чтобы вся транзакция была завершена успешно (мы говорим, что транзакция зафиксирована). Если одна из операций не выполняется успешно, то происходит сбой транзакции (это называется откатом транзакции). Транзакции должны гарантировать определенную степень надежности и устойчивости, а также соответствовать правилам ACID.

Правила ACID

ACID — это аббревиатура, которая формируется из первых букв четырех основных свойств, определяющих надежность транзакций: атомарность (Atomicity), согласованность (Consistency), изолированность (Isolation) и надежность (Durability) (они описаны в табл. 9.1). Для того чтобы объяснить эти свойства, я воспользуюсь классическим примером банковского перевода: нужно снять сбережения с резервного счета, чтобы пополнить основной.


Таблица 9.1. Свойства ACID

СвойствоОписание
АтомарностьТранзакция состоит из одной или нескольких операций, сгруппированных в единицу работы. По завершении транзакции либо все операции выполняются успешно (фиксация), либо ни одна из них (откат) — в том случае, если произошло что-то неожиданное
СогласованностьПо завершении транзакции данные остаются согласованными
ИзолированностьПромежуточное состояние транзакции не демонстрируется внешним приложениям
НадежностьПосле того как транзакция успешно завершается, изменения должны стать видимыми другим приложениям


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

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

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

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

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

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

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

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

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