Главная » Java, JavaBeans » Управление транзакциями EJB

0

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

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

Для управления транзакциями клиент использует интерфейс javax.transaction.UserTransaction. Прежде всего, он должен (с помощью JNDI) получить на него ссылку. После создания контекста UserTransaction, клиент начинает транзакцию, вызвав метод UserTransaction.begin (), за которым позднее следует вызов UserTransaction.commit () для подтверждения (или UserTransaction.rollback() для отката) и завершения транзакции. Между этими вызовами клиент выполняет запросы к БД и вносит необходимые изменения.

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

Пример Кода 5.6 Транзакции, управляемые клиентом

import j avax.naming.InitialContext; import javax.transaction.UserTransaction;

public class clientTransaction {

public static void main (String[] argv) { UserTransaction ut = null;

InitialContext initContext = new InitialContext!);

ut = (UserTransaction)initContext.lookup("java:comp/ UserTransaction");

// start a transaction ut.begin();

//do some transaction work

// commit or rollback the transaction ut. commit (); //or ut. rollback () ;

}

}

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

По теме:

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