隨筆-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 閱讀(1240) 評論(0)  編輯  收藏
          主站蜘蛛池模板: 沈阳市| 延吉市| 安吉县| 油尖旺区| 罗江县| 安仁县| 中卫市| 烟台市| 五家渠市| 将乐县| 双牌县| 延长县| 交城县| 武汉市| 江孜县| 耿马| 庐江县| 临清市| 大冶市| 桦川县| 寿阳县| 黔东| 镇安县| 改则县| 富源县| 莱西市| 永吉县| 晋宁县| 腾冲县| 扬州市| 德昌县| 福贡县| 孝感市| 峨边| 阳朔县| 荃湾区| 绥棱县| 临邑县| 思南县| 兴义市| 西畴县|