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

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

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

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

<p>Понимание транзакций</p>

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

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

<p>Правила ACID</p>

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

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

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

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных