Главная » Java, JavaBeans » Что такое транзакция EJB

0

Прикладные программисты пользуются многими преимуществами, разрабатывая свои приложения на платформах, подобных Java 2 Enterprise Edition (J2EE), которые поддерживают транзакции. Ориентированные на использование транзакций системы разработки существенно упрощают процесс создания приложений, так как они освобождают разработчика от необходимости заботиться об обеспечении устойчивости к сбоям и необходимости обслуживания многих клиентов одновременно. Для использования таких транзакций не обязательно работать с одной базой данных или на одном компьютере. В распределенной транзакции могут одновременно участвовать несколько баз данных, работающих под управлением разных серверов.

Обычно программист разбивает все необходимые действия в рамках своего приложения на последовательность групп действий. Каждая такая группа выполняется в контексте отдельной транзакции. При

выполнении приложения системы, с которыми оно взаимодействует, например, СУБД, гарантируют, что каждая такая группа – отдельная транзакция – завершается независимо от всех других процессов. Если произошла ошибка, СУБД откатывает транзакцию и отменяет все выполненные в ее контексте действия.

Характеристики транзакций

большими возможностями параллельного доступа к данным. Как правило, такие приложения позволяют использовать большое количество одновременных транзакций, даже если некоторые из них выполняют чтение данных, которые частично изменены другими транзакциями.

И, наконец, сохраняемость означает, что изменения, внесенные подтвержденными транзакциями, остаются в базе данных независимо от последующих сбоев. Сохраняемость гарантирует, что подтвержденные изменения сохраняются в базе данных, даже если произошел сбой после завершения транзакции и что база данных может быть восстановлена после такого сбоя.

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

Контейнер поддерживает так называемые "плоские" (flat) транзакции, но не вложенные (nested) транзакции. Контейнер также неявно распространяет контекст транзакции. Последнее означает, что пользователь не должен явно использовать контекст транзакции в качестве аргумента при вызове методов, так как эту работу берет на себя Контейнер.

Программистам следует иметь в виду, что страницы JSP и сервлеты хотя и могут быть использованы в качестве клиентов, не могут рассматриваться как транзакционные компоненты. Все действия по управлению транзакциями должны быть выполнены на уровне соответствующего Компонента EJB. Все действия, связанные с управлением транзакцией, осуществляются Компонентом EJB и его Контейнером в ответ на запрос клиента.

Источник: Руководство программиста Enterprise JavaBeans

По теме:

  • Комментарии