2010-04-15 3 views
4

Я не могу найти способ установить TransactionIsolation в ejb. Может ли кто-нибудь сказать мне, как я его установил? Я использую упорство.Как установить изоляцию транзакций в EJB?

Я просмотрел следующие классы: EntityManager, EntityManagerFactory, UserTransaction. Ни у одного из них, похоже, нет метода setTransactionIsolation или такого. Нужно ли менять persistence.xml?

Я только что прочитал книгу под названием «Освоение EJB 3.0 4-го издания». Они дали полную теорию 10 страниц об уровне изоляции, что это проблемы возникают, и что происходит, и такие вещи, но в конце концов они дали этот пункт: -

"As we now know, the EJB standard does not deal with isolation levels directly, 
and rightly so. EJB is a component specification. It defines the behavior and 
contracts of a business component with clients and middleware infrastructure 
(containers) such that the component can be rendered as various middleware 
services properly. EJBs therefore are transactional components that interact 
with resource managers, such as the JDBC resource manager or JMS resource 
manager, via JTS, as part of a transaction. They are not, hence, resource 
components in themselves. Since isolation levels are very specific to the 
behavior and capabilities of the underlying resources, they should therefore be 
specified at the resource API levels. " 

Что именно это означает? Что означает API-интерфейсы уровня ресурсов? Пожалуйста, помогите мне. Если сохранение не имеет возможности установить Isolation Level, то почему они дают такую ​​огромную теорию в EJB книгу и сделать его тяжелый вес излишне :(

ответ

0

См this

+0

Привет чук, страница, которую называют не содержит имя READ_COMMITED или READ_UNCOMMITED или SERIALIZABLE или REPEATABLE_READ? Являются ли эти уровни изоляции на странице, на которую вы ссылались? Кажется, они отличаются от того, что я читал в книге? – TCM

+0

Это уровни изоляции JDBC. См. Http://docs.sun.com/app/docs/doc/820-7695/beamv?a=view –

5

По словам спецификации EJB

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

  • API для управления уровнем изоляции является специфичным для менеджера ресурсов. (Следовательно, архитектура EJB не определяет API для управления уровнями изоляции.)
  • Поставщик Bean должен позаботиться о настройке уровня изоляции. Большинство менеджеров ресурсов требуют, чтобы все обращения к диспетчеру ресурсов в транзакции выполнялись с одинаковым уровнем изоляции.
  • Для сессионных компонентов и компонентов, управляемые сообщений с бобовой управляемой демаркацией транзакций, поставщик Bean может указать желаемый уровень изоляции программен методами корпоративного компонента, с использованием ресурсом менеджеру специфического API. Например, java.sql.Connection.setTransactionIsolation
  • Контейнер поставщик должен гарантировать, что подходящие уровни изоляции при условии, чтобы гарантировать целостность данных для объектных компонентов
  • Дополнительный уход должны быть приняты, если несколько бобов предприятия доступ к тому же менеджер ресурсов в той же транзакции. Необходимо избегать конфликтов в запрошенных уровнях изоляции.

Я надеюсь, что он может в полной мере ощутить свои потребности

Смежные вопросы