随笔-2  评论-0  文章-20  trackbacks-0
下载AtomikosTransactionsEssentials-3.7.0M5-bin.zip
ojdbc14.jar,mysql-connector-java-5.0.8-bin.jar,spring.jar(2.0),log4j-1.2.14.jar,commons-logging.jar
工程类似,其实不是web工程
 

import.xml
<?xml version="1.0" encoding="UTF-8"?>   
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " http://www.springframework.org/dtd/spring-beans.dtd">    
<beans>   
    
<bean id="mysqlDS"  
        class
="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init"  
        destroy-method
="close">   
        
<description>mysql xa datasource</description>   
        
<property name="uniqueResourceName">   
            
<value>mysql_ds</value>   
        
</property>   
        
<property name="xaDataSourceClassName">   
            
<value>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</value>   
        
</property>   
        
<property name="xaProperties">   
            
<props>   
                
<prop key="user">root</prop>   
                
<prop key="password">haoning</prop>   
                
<prop key="URL">jdbc:mysql://localhost:3306/test</prop>   
            
</props>   
        
</property>   
    
</bean>   
    
<bean id="oracleDS" class="com.atomikos.jdbc.AtomikosDataSourceBean"  
        init-method
="init" destroy-method="close">   
        
<description>oracle xa datasource</description>   
        
<property name="uniqueResourceName">   
            
<value>oracle_ds</value>   
        
</property>   
        
<property name="xaDataSourceClassName">   
            
<value>oracle.jdbc.xa.client.OracleXADataSource</value>   
        
</property>   
        
<property name="xaProperties">   
            
<props>   
                
<prop key="user">UNIFLOW</prop>   
                
<prop key="password">UNIFLOW</prop>   
                
<prop key="URL">jdbc:oracle:thin:@10.4.120.126:1521:E4CS</prop>   
            
</props>   
        
</property>   
    
</bean>   
    
<bean id="atomikosUserTransaction"  
        class
="com.atomikos.icatch.jta.UserTransactionImp">   
        
<description>UserTransactionImp</description>   
        
<property name="transactionTimeout" value="300"/>   
    
</bean>   
    
<bean id="atomikosTransactionManager"  
        class
="com.atomikos.icatch.jta.UserTransactionManager"  
        init-method
="init" destroy-method="close">   
        
<description>UserTransactionManager</description>   
        
<property name="forceShutdown">   
            
<value>true</value>   
        
</property>   
    
</bean>   
    
<bean id="springTransactionManager"  
        class
="org.springframework.transaction.jta.JtaTransactionManager">   
        
<description>JtaTransactionManager</description>   
        
<property name="transactionManager">   
            
<ref bean="atomikosTransactionManager" />   
        
</property>   
        
<property name="userTransaction">   
            
<ref bean="atomikosUserTransaction" />   
        
</property>   
    
</bean>   
    
<bean id="transactionProxyFactoryBean"  
        class
="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"  
        abstract
="true">   
        
<property name="transactionManager">   
            
<ref bean="springTransactionManager" />   
        
</property>   
        
<property name="transactionAttributes">   
            
<props>   
                
<prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>   
            
</props>   
        
</property>   
    
</bean>   
    
<bean id="helloDao" class="com.jta.HelloDaoImpl">   
        
<property name="dataSource" ref="mysqlDS" />   
    
</bean>   
    
<bean id="worldDao" class="com.jta.WorldDaoImpl">   
        
<property name="dataSource" ref="oracleDS" />   
    
</bean>   
    
<bean id="helloBiz" class="com.jta.HelloBizImpl">   
        
<property name="helloDao" ref="helloDao" />   
        
<property name="worldDao" ref="worldDao" />   
    
</bean>   
    
<bean id="helloBizProxy" parent="transactionProxyFactoryBean">   
        
<property name="target">   
            
<ref bean="helloBiz" />   
        
</property>   
    
</bean>   
</beans>
jta.properties
com.atomikos.icatch.service=com.atomikos.icatch.standalone.UserTransactionServiceFactory   
com.atomikos.icatch.console_file_name 
= tm.out   
com.atomikos.icatch.log_base_name 
= tmlog   
com.atomikos.icatch.tm_unique_name 
= com.atomikos.spring.jdbc.tm   
com.atomikos.icatch.console_log_level 
= INFO  
package com.jta;   
public interface HelloBiz {   
    
public void insertTwoDatabase() throws Exception;   
}
   
package com.jta;   
public class HelloBizImpl implements HelloBiz {   
    
private HelloDao helloDao;   
    
private WorldDao worldDao;   
    
public void insertTwoDatabase() throws Exception{   
        
this.getHelloDao().addHello();//mysql   
        this.getWorldDao().addWorld();//oracle   
    }
   
    
public HelloDao getHelloDao() {   
        
return helloDao;   
    }
   
    
public void setHelloDao(HelloDao helloDao) {   
        
this.helloDao = helloDao;   
    }
   
    
public WorldDao getWorldDao() {   
        
return worldDao;   
    }
   
    
public void setWorldDao(WorldDao worldDao) {   
        
this.worldDao = worldDao;   
    }
   
}
   
package com.jta;   
public interface HelloDao {   
    
public void addHello() throws Exception;   
}
   
package com.jta;   
import org.springframework.jdbc.core.support.JdbcDaoSupport;   
public class HelloDaoImpl extends JdbcDaoSupport implements HelloDao{   
    
public void addHello() throws Exception{//mysql   
        String sql = "insert into user(name,age) values(?,?)";      
        Object[] params 
= new Object[]{"test","12"};      
        
this.getJdbcTemplate().update(sql, params);    
    }
   
}
   
package com.jta;   
public interface WorldDao {   
    
public void addWorld() throws Exception;   
}
   
package com.jta;   
import org.springframework.jdbc.core.support.JdbcDaoSupport;   
public class WorldDaoImpl extends JdbcDaoSupport implements WorldDao {   
    
public void addWorld() throws Exception {// oracle   
        String sql = "insert into test1(id,myname) values(?,?)";   
        Object[] params 
= new Object[] 3"ningge" };   
        
this.getJdbcTemplate().update(sql, params);   
  
    }
   
}
   
package com.jta;   
import org.springframework.context.ApplicationContext;   
import org.springframework.context.support.ClassPathXmlApplicationContext;   
public class Test {   
    
public static void main(String[] args)throws Exception{   
        ApplicationContext context
=new ClassPathXmlApplicationContext("import.xml");   
        HelloBiz helloBiz
=(HelloBiz)context.getBean("helloBizProxy");   
        helloBiz.insertTwoDatabase();          
    }
   
}


posted on 2011-03-01 22:57 soken 阅读(1238) 评论(0)  编辑  收藏