rfvn 发表于 2015-8-8 10:02:54

JTA集成JOTM或Atomikos配置分布式事务(Tomcat应用服务器)

  一.以下介绍Spring中直接集成JOTM提供JTA事务管理、将JOTM集成到Tomcat中。
(经过测试JOTM在批量持久化时有BUG需要修改源码GenericPool类解决)!
参考文章http://mavin.zhou.blog.163.com/blog/static/114522435200971822334475/
通过集成JOTM,直接在Spring中使用JTA事务
JOTM(Java Open Transaction Manager)是ObjectWeb的一个开源JTA实现,它本身也是开源应用程序服务器JOnAS(Java Open Application Server)的一部分,为其提供JTA分布式事务的功能。
Spring 2.0附带的依赖类库中虽然包含jotm类库,但是并不完整,你可以到http://jotm.objectweb.org下载完全版的JOTM。
Spring为JOTM提供了一个org.springframework.transaction.jta.JotmFactoryBean支持类,通过该支持类可以方便地创建JOTM本地实例。
1.将jotm的jar包lib目录下所有jar复制到项目中
2.将jotm的jar包conf目录下carol.properties文件复制到项目类路径下,修改内容为:
  



    # do not use CAROL JNDI wrapper      
    carol.start.jndi=false      
    # do not start a name server      
    carol.start.ns=false      
    # Naming Factory   
    carol.jndi.java.naming.factory.url.pkgs=org.apache.naming

  3.建立两个数据库,配置两个数据源
  



   
   
   
         
               
                  
                  
                  
                  
                  
               
         
         
         
      
   
         
               
                  
                  
                  
                     
                                       
               
         
         
         
      

  4.事务配置
  



   
      
   
   
      
      
   
   
      
         
         
      
   
   
      
   
   
      
   
   
      
   

  二.以下介绍Spring中直接集成Atomikos提供JTA事务管理、将Atomikos集成到Tomcat中。(经过测试推荐此方法)
Atomikos Transactions Essentials现在的版本是3.1.7,可以在http://www.atomikos.com/Main/TransactionsEssentialsDownloadForm 下载,在发布包里的examples文件夹下面有些例子,非常实用,我在使用中参考里面的例子很容易配置成功。1.将Atomikos的jar包dist目录下所有jar复制到项目中
2.建立两个数据库,配置两个数据源。
Atomikos数据源配置方法有三种分别有:SimpleDataSourceBean,AtomikosDataSourceBean,AtomikosNonXADataSourceBean可任选一种
  



    Simple表示基础数据库连接配置
      
         
            OracleXADataSource   
         
         
            oracle.jdbc.xa.client.OracleXADataSource   
         
         
            URL=jdbc:oracle:thin:@localhost:1521:orcl;user=orcl;password=   
         
         
            true   
         
         
            3   
         
         
            SELECT 1   
         
      
    Atomikos表示必须要用到XA数据库驱动类,可设置连接池(经过测试推荐此方法)
      
         
            OracleXADataSource
         
         
            oracle.jdbc.xa.client.OracleXADataSource
      
         
            
                     jdbc:oracle:thin:@localhost:1521:orcl
                orcl
                  
            
         
          1   
          30      
         
    AtomikosNon表示必须要用到普通数据库驱动类,可设置连接池      
   
      OracleXADataSource
      orcl
      
      jdbc:oracle:thin:@192.168.1.217:1521:orcl
      oracle.jdbc.OracleDriver
      1
      60
      
    另外一个数据库在这就不在写了,设置同上只是mysql的驱动类名为:xaDataSourceClassName:com.mysql.jdbc.jdbc2.optional.MysqlXADataSource

  3.事务配置
  



    Atomikos事务方法
      
         
            true
         
      
      
         
      
      
         
            
         
         
            
         
   
    接下来的代码和上例类同就不再写。
页: [1]
查看完整版本: JTA集成JOTM或Atomikos配置分布式事务(Tomcat应用服务器)