gpt4 book ai didi

java - 如何在 EJB 中设置事务隔离?

转载 作者:搜寻专家 更新时间:2023-11-01 02:55:21 26 4
gpt4 key购买 nike

我找不到在 ejb 中设置 TransactionIsolation 的方法。谁能告诉我如何设置它?我正在使用持久性。

我看过以下类(class):实体管理器、实体管理器工厂、用户事务。他们似乎都没有像 setTransactionIsolation 之类的方法。我们需要更改 persistence.xml 吗?

我刚刚读了一本名为 Mastering EJB 3.0 4th edition 的书。他们给出了整整 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 是什么意思?请帮我。如果持久性无法设置隔离级别,那么他们为什么要在 EJB 书中给出如此庞大的理论并不必要地使它变得沉重 :(

最佳答案

如EJB规范所述

Transactions not only make completion of a unit of work atomic, but they also isolate the units of work from each other, provided that the system allows concurrent execution of multiple units of work.

  • 用于管理隔离级别的 API 特定于资源管理器。 (因此,EJB 架构没有定义用于管理隔离级别的 API。)
  • Bean Provider 在设置隔离级别时必须小心。大多数资源管理器要求事务中对资源管理器的所有访问都使用相同的隔离级别
  • 对于 session Bean 和消息驱动的 Bean,具有 Bean 管理的事务划分,Bean 提供者可以在企业 Bean 的方法中以编程方式指定所需的隔离级别,使用特定于资源管理器的应用程序接口(interface)。例如,java.sql.Connection.setTransactionIsolation
  • 容器提供者应确保提供合适的隔离级别以保证实体 bean 的数据一致性
  • 如果多个企业 bean 在同一个事务中访问同一个资源管理器,则必须格外小心。 必须避免所请求隔离级别的冲突。

希望它能满足你的需求

关于java - 如何在 EJB 中设置事务隔离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2642881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com