如何在Atomikos中使用JNDI创建apache camel XA连接

时间:2015-08-24 13:46:43

标签: jms apache-camel jndi xa atomikos

Hi i am trying to create a XA transaction for camel and jdbc using atomikos but i have JNDI to set up a XA jdbc transaction i am having issues configuring it.  

下面是我的代码,我无法写入类异常

 <!-- Atomikos and Spring transaction configuration  -->


    <!-- JMS config; with XAConnectionFactory -->


      <bean id="xa.amqConnectionFactory" class="org.apache.activemq.spring.ActiveMQXAConnectionFactory">
        <property name="brokerURL" value="tcp://localhost:61616"/>
      </bean>

      <!-- nothing transactional here, this connection factory will be used from the test harness -->
      <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="tcp://localhost:61616"/>
      </bean>


      <!-- Atomikos JTA configuration, nothing specific to Spring here -->
      <bean id="atomikos.connectionFactory" class="com.atomikos.jms.AtomikosConnectionFactoryBean"
            init-method="init" destroy-method="close">
        <property name="uniqueResourceName" value="My_MQSeries_XA_RMI"/>
        <property name="xaConnectionFactory" ref="xa.amqConnectionFactory"/>
        <!-- XAConnectionFactory -->
        <property name="maxPoolSize" value="10"/>
        <property name="ignoreSessionTransactedFlag" value="false"/>
      </bean>


      <!-- database config; the XADataSource bean is both a DataSource and an XADataSource-->
      <!-- <import resource="xa-embedded-db-context.xml"/> -->

      <bean id="db2jndi" class="org.springframework.jndi.JndiObjectFactoryBean">
      <property name="jndiName" value = "jndi NAMe"/>

      </bean>

      <!-- <bean id="XADataSource" class="MyDAOclass">
      <property name="MyDAOmethod" ref="db2jndi"/>
      </bean> -->

      <bean id="atomikos.dataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean">
        <property name="xaDataSource" ref="XADataSource"/>
        <!-- XADataSource -->
      </bean>


      <!-- javax.transaction.TransactionManager -->
      <bean id="atomikos.transactionManager"
            class="com.atomikos.icatch.jta.UserTransactionManager"
            init-method="init"
            destroy-method="close"
            depends-on="atomikos.connectionFactory,atomikos.dataSource">
        <property name="forceShutdown" value="false"/>
      </bean>

      <!-- javax.transaction.UserTransaction -->
      <bean id="atomikos.userTransaction"
            class="com.atomikos.icatch.jta.UserTransactionImp">
        <property name="transactionTimeout" value="300"/>
      </bean>

      <!-- This is the Spring wrapper over the JTA configuration -->
      <!-- org.springframework.transaction.PlatformTransactionManager -->
      <bean id="jta.transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
        <property name="transactionManager" ref="atomikos.transactionManager"/>
        <property name="userTransaction" ref="atomikos.userTransaction"/>
      </bean>


      <!-- Camel components -->
      <bean id="jms" class="org.apache.activemq.camel.component.ActiveMQComponent">
        <property name="connectionFactory" ref="atomikos.connectionFactory"/>
        <property name="transactionManager" ref="jta.transactionManager"/>
      </bean>

      <!-- this component is used only from the test harness -->
      <bean id="nonTxJms" class="org.apache.activemq.camel.component.ActiveMQComponent">
        <property name="connectionFactory" ref="connectionFactory"/>
      </bean>

      <bean id="sql" class="org.apache.camel.component.sql.SqlComponent">
        <property name="dataSource" ref="atomikos.dataSource"/>
      </bean>

      <!-- Policy -->
      <bean id="PROPAGATION_REQUIRED" class="org.apache.camel.spring.spi.SpringTransactionPolicy">
        <property name="transactionManager" ref="jta.transactionManager"/>
        <!-- Atomikos TX Manager -->
        <property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"/>
      </bean>

如果有人使用XA事务处理过apache camel,那么你们可以向我提供你的示例配置文件,以便我可以使用和修改它。

0 个答案:

没有答案