【问题标题】: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 中的所有方法启动一个事务。

    【讨论】:

    • 谢谢道格。我没有意识到容器将始终默认为已交易。
    猜你喜欢
    • 2017-11-02
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 2011-11-15
    • 2011-11-24
    相关资源
    最近更新 更多