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可任选一种
	
	    
           
            OracleXADataSource   
           
           
            oracle.jdbc.xa.client.OracleXADataSource   
           
           
            URL=jdbc:oracle:thin:@localhost:1521:orcl;user=orcl;password=   
           
           
            true   
           
           
            3   
           
           
            SELECT 1   
           
       
    
	  
          
            OracleXADataSource  
          
          
            oracle.jdbc.xa.client.OracleXADataSource  
        
          
              
					 jdbc:oracle:thin:@localhost:1521:orcl  
                orcl  
                  
              
          
		  1    
		  30
                  
     	
           
	
		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.事务配置
	      
      
          
            true  
          
      
      
          
      
      
          
              
          
          
              
          
     
	接下来的代码和上例类同就不再写。

你可能感兴趣的:(应用服务器,Tomcat,配置管理,Oracle,Spring)