- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我了解容器管理事务(CMT)。我也知道different possible values枚举类型TransactionAttributeType
。由于客户端从不直接调用 MDB,因此除了 REQUIRED
和 NOT_SUPPORTED
之外的属性类型对于 MDB 没有意义,因为没有客户端启动的事务可以加入。那么什么时候应该使用 REQUIRED
和 NOT_SUPPORTED
注释 MDB 的 onMessage()
方法呢?没有提到这两个选项的默认行为是什么?
最佳答案
What will be the default behavior in none of the two options is mentioned?
容器管理的 MDB 的默认行为是 NOT_SUPPORTED
。
So when should I annotate the onMessage() method of an MDB with REQUIRED vs NOT_SUPPORTED?
使用 NOT_SUPPORTED 意味着 - 如果 onMessage()
发生故障 - 故障之前发生的任何更新/操作都不会回滚;这对于涉及不同资源的原子操作来说是不可取的。
如果您不希望出现这种行为,请使用REQUIRED
,在onMessage()
中放置一个try/catch,然后调用setRollbackOnly()
> 在 catch() 中发生任何异常时。如果 onMessage() 跨不同资源执行多个操作,您将需要 XA 驱动程序;例如,更新数据库并在同一事务中发送新的 JMS 消息肯定需要 XA 兼容的驱动程序。
MDB 仅支持 REQUIRED 或 NOT_SUPPORTED
MDB 可以使用 REQUIRED
或 NOT_SUPPORTED
事务属性;其他属性没有意义,因为它们需要客户端上下文。
容器始终在调用 onMessage()
之前启动新事务。如果从 onMessage()
调用另一个方法,容器会传递当前事务上下文。
关于java - 我什么时候应该使用 `REQUIRED` 与 `NOT_SUPPORTED` 作为 MDB 的 @TransactionAttribute 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24120389/
有没有TransactionAttributeType.NOT_SUPPORTED每个数据库查找方法都有意义吗?如果不执行更新,我认为附加实体没有意义。 @TransactionAttribute(T
如果我有嵌套的 bean 方法,这些方法只是从数据库中获取数据。 (即获取 API)。那么将所有 bean 方法标记为 TransactionAttributeType.NOT_SUPPORTED 是
我碰巧找到了使用这个结构的例子,虽然我不确定我能从中得到什么? 这是否意味着无状态 EJB 中的所有 select 语句都应该遵循这一点? @Stateless public class Employ
我想在测试我的 Spring Batch 作业时插入一条测试记录。 通常我会使用 @Transactional 注释测试类,但这不适用于使用 @SpringBatchTest 注释的测试类。 @Spr
长话短说: 使用 @Transactional(propagation = Propagation.NOT_SUPPORTED) 注释的服务方法 Hibernate 5.0.4.Final:一切都按预
我最近遇到了以下错误“AthenaQueryError:Athena 查询失败:”NOT_SUPPORTED:不支持的 Hive 类型”,为此我遵循了这个堆栈溢出链接:converting to ti
我了解容器管理事务(CMT)。我也知道different possible values枚举类型TransactionAttributeType。由于客户端从不直接调用 MDB,因此除了 REQUIR
我的 EJB3.1 bean 初始化遇到困难,更具体地说,由于感知到的事务回滚而导致它失败,即使我已经用 @TransactionAttribute(NOT_SUPPORTED) 标记了 bean .
我有以下代码结构,我需要有关如何从同一 EJB 中的 NOT_SUPPORTED 事务类型方法级联启动本地事务的指南。 @Stateless @TransactionManagement(value
我是一名优秀的程序员,十分优秀!