zoukankan      html  css  js  c++  java
  • 测试web数据库的分布式事务atomikos 的三种数据源 SimpleDataSourceBean,AtomikosDataSourceBean,AtomikosNonXADataSourceBean

    这2天学习了atomikos事务控制框架,其中看到有3种数据源,分别是,SimpleDataSourceBean,AtomikosDataSourceBean,AtomikosNonXADataSourceBean。

    在看atomikos文档的时候,一直有个疑点,就是文档好像强调要用xadatasource,用nonxadatasource好像就不支持事务了。

    但是这3个数据源有2个是xadatasource,另一个是nonxadatasource。那看起来就矛盾了。于是实验了一下,用AtomikosNonXADataSourceBean做数据源,

    同时操作2个数据源,在后一个数据源操作中故意抛出异常。结果数据都没有保存进数据库。

    后台也显示rollback成功了。

    所以nonxadatasource也可以用。

    百度百科里说,

    连接

    XA连接区别于非XA连接。要记住的是XA连接是一个JTA事务中的参与者。这就意味着XA连接不支持JDBC的自动提交特性。也就是说应用程序不必在XA连接上调用java.sql.Connection.commit()或java.sql.Connection.rollback()。相反,应用程序应该使用UserTransaction.begin()、UserTransaction.commit()和UserTransaction.rollback().
    区别可能就在这了,如果用xadatasource就可以用UserTransaction.begin()这些操作,
    如果用nonxadatasource,就不支持这些操作了。
    这只是猜想,具体待验证。
  • 相关阅读:
    每个部门都有自己的游戏规则
    ssh作为代理,反向登录没有固定公网ip的局域网内的某远程服务器
    x11vnc 作为远程桌面服务器时vnc客户端键盘无法长按连续输入字符
    vim 编译使用ycm启动问题 fixed
    ubuntu设置普通用户也能执行docker命令
    git常见使用
    切图的必要步骤
    css居中
    清除浮动
    Spring-AOP(2)
  • 原文地址:https://www.cnblogs.com/xiongjinpeng/p/atomikos_jta.html
Copyright © 2011-2022 走看看