Spring4+Hibernate4+Atomikos3.3多数据源事务管理


Spring3+后不再对JTOM提供支持,所以可以改用Atomikos管理多数据源事务。
Spring2.5+Hibernate3+JTOM参考:http://hanqunfeng.iteye.com/blog/1554251

Atomikos官网网站:http://www.atomikos.com/  

一.pom.xml


			com.atomikos
			transactions-jdbc
			3.9.3
		

 

二.applicationContext-atomikos.xml


          
        oracle
          
        
             
        
            
                ${jdbc.username01}
                ${jdbc.password01}
                ${jdbc.url01}
            
         
          
        
        
        20000  
    
    
   
 
    
    
    
        
        
            
                com.cpframework.function.**.model.oracle
            
        
        
            
                
                    org.hibernate.dialect.Oracle10gDialect
                
                true
                jta
                org.hibernate.transaction.JTATransactionFactory
            
        
    


    
    
      
    
    
    
    
    
          
        mysql
        
        
        
        
            
                ${jdbc.username02}
                ${jdbc.password02}
                ${jdbc.url02}
            
         
          
        
       
        20000  
    
    
  
    
    
    
    
        
        
            
                com.cpframework.function.**.model.mysql
            
        
        
            
                
                    org.hibernate.dialect.MySQLDialect
                
                true
                jta
                org.hibernate.transaction.JTATransactionFactory
            
        
    


    
    
      
    
    
 
    
    
        UserTransactionManager  
        
            true
        
    

    
        
    
        
    
    
        
        
         
    

 
        
        
    

  
        
            
            
            
            
            
            
            
            
            
            
            
            
            
                
        
    

 


三.transactions.properties
将transactions.properties文件放到编译根路径下,可根据需要开启相关注解,参见附件。

四.CP_Hibernate4DAOImpl
需要注意两点:
1.session必须使用sessionFactory.openSession()的方式获得,不能使用sessionFactory.getCurrentSession()。
2.更新操作必须调用session.flush()方法。
例如:

public void update(Object entity) {
Session session = sessionFactory.openSession();
session.update(entity);
session.flush();
}

 

参考:

http://www.liferay.com/zh/community/wiki/-/wiki/Main/JTA-XA+on+Tomcat/pop_up?controlPanelCategory=portlet_36

 

 

你可能感兴趣的:(Spring,Atomikos)