• 测试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,就不支持这些操作了。
    这只是猜想,具体待验证。
  • 相关阅读:
    Java知识系统回顾整理01基础02面向对象03方法
    可插件化拓展改造器 slot-maven-plugin
    数据治理框架
    Java读写hdfs上的avro文件
    FTPClient的使用
    Java读写hdfs上的avro文件
    图片上传预览
    css hack 用法注意
    获取get请求后面的参数
    js全局变量污染
  • 原文地址:https://www.cnblogs.com/xiongjinpeng/p/atomikos_jta.html
Copyright © 2020-2023  润新知