为什么EJB组件本身不允许设定隔离级别?

11 篇文章 0 订阅

EJB3.0标准本身并未定义隔离级别相关的内容。
EJB是一组件规范,它定义了业务组件的行为、组件与中间件基础框架间的契约。比如EJB组件能正确的使用不同的中间件服务。因此EJB组件是事务性组件,它能够借助于JTA实现同资源管理器的交互。比

如JDBC资源管理器、JMS资源管理器。可以断定EJB本身并不是资源组件。既然隔离级别是底层资源所具有的特定行为和能力,则开发者就应该在资源API一级去指定隔离级别。

隔离级别对于EJB应用的运行性能有非常大的影响,因此要慎重。

控制隔离级别

可以同一事务中为不同资源指定不同的隔离级别,

但是在事务中使用同一资源的所有EJB都应该使用相同的隔离级别。 

在SLB和MDB中,BMT允许使用数据库API来指定事务的隔离级别。例如,JDBC API提供了一种机制,可以指定数据库连接的隔离级别。

DataSource source = (javax.sql.DataSource)jndiCntx.lookup("java:comp/env/jdbc/titanDB");

Connection con = source.getConnection();

con.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值