【问题标题】:Two phase commit rollback jboss 7.x testing (2pc)两阶段提交回滚 jboss 7.x 测试 (2pc)
【发布时间】:2016-09-01 15:35:18
【问题描述】:
我正在尝试在 JBOSS eap7 上测试 2 pc 事务回滚。
使用 xa jms 设置和 oracle xa 数据源。
Bean 使用 oracle xa 数据源对 db 进行更新并发布 jms messg。
MDB 接收到消息并引发运行时异常。
我预计我的数据库事务也会回滚,但它已提交。
我的会话在
会话会话 = connection.createSession(true, Session.SESSION_TRANSACTED);
有任何想法或更好的测试来检查此功能吗?
【问题讨论】:
标签:
jdbc
jms
rollback
transactional
xa
【解决方案1】:
我建议使用注释将您的 MDB 标记为事务性的。例如:
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class myMDB implements MessageListener {
...
...
...
}
这将导致 JBoss 为 MDB 中的所有方法启动一个事务。