I have some tests that seem to demonstrate that the below Blueprint xml
configuration does not enabled JTA/XA (Microsoft SqlServer + Apache
ActiveMq) as expected.  I am expecting that if an Java Exception is thrown
and bubbles up through the container that the transaction gets rolled-back.

Does anyone have any ideas as to why I might be having issues with
Transaction Management?


<atomikos.version>3.7.0</atomikos.version>
<activemq.version>5.5.1</activemq.version>
<camel.version>2.8.3</camel.version>
<microsoft.sql-jdbc.version>3.0.1301</microsoft.sql-jdbc.version>
<slf4j.version>1.6.1</slf4j.version>
<spring.version>3.0.6.RELEASE</spring.version>
<spring.osgi.version>1.2.1</spring.osgi.version>


===================================================================
bundle/src/main/resources/OSGI-INF/blueprint/resource-context.xml
===================================================================



<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0";
    xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
                        http://camel.apache.org/schema/blueprint
http://camel.apache.org/schema/blueprint/camel-blueprint.xsd";>


    
    <cm:property-placeholder persistent-id="resources"
update-strategy="reload">
        <cm:default-properties>
            <cm:property name="dbServerName" value="localhost" />
            <cm:property name="dbServerPort" value="1433" />
            <cm:property name="dbName" value="theDatbaseName" />
            <cm:property name="dbUser" value="theDatabaseUser" />
            <cm:property name="dbPassword" value="theDatabasePassword" />
            <cm:property name="dbMaxConnectionPoolSize" value="30" />
        </cm:default-properties>
    </cm:property-placeholder>


    

    <bean id="activemq"
class="org.apache.activemq.camel.component.ActiveMQComponent">
        <property name="transactionManager" ref="jtaTransactionManager"/>
        <property name="cacheLevelName" value="CACHE_NONE"/>
        <property name="transacted" value="true"/>
    </bean>

    <bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
        <property name="transactionManager" ref="jtaTransactionManager"/>
        <property name="cacheLevelName" value="CACHE_NONE"/>
        <property name="transacted" value="true"/>
    </bean>

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

    <bean id="jdbc" class="org.apache.camel.component.jdbc.JdbcComponent">
        <property name="dataSource" ref="dataSource"/>
    </bean>


    

    

    <bean id="atomikosTransactionManager"
class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init"
destroy-method="close" >
        <property name="forceShutdown" value="false" />
    </bean>



    <bean id="atomikosUserTransaction"
class="com.atomikos.icatch.jta.UserTransactionImp" >
        <property name="transactionTimeout" value="150" />
    </bean>


    <bean id="jtaTransactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
        <property name="transactionManager" ref="atomikosTransactionManager"
/>
        <property name="userTransaction" ref="atomikosUserTransaction" />
        <property name="allowCustomIsolationLevels" value="true" />
    </bean>


    <bean id="PROPAGATION_REQUIRED"
class="org.apache.camel.spring.spi.SpringTransactionPolicy">
        <property name="transactionManager" ref="jtaTransactionManager" />
        <property name="transactionTemplate" ref="transactionTemplate" />
        <property name="propagationBehaviorName"
value="PROPAGATION_REQUIRED" />
    </bean>

    <bean id="transactionTemplate" 
class="org.springframework.transaction.support.TransactionTemplate">
        <property name="transactionManager" ref="jtaTransactionManager" />
        <property name="isolationLevelName"
value="ISOLATION_REPEATABLE_READ"/>
        
    </bean>


    

    <bean id="jmsXaConnectionFactory"
class="org.apache.activemq.ActiveMQXAConnectionFactory">
        <property name="brokerURL" value="tcp://localhost:61616" />
        <property name="redeliveryPolicy">
            <bean class="org.apache.activemq.RedeliveryPolicy">
                <property name="initialRedeliveryDelay" value="1000"/>
                <property name="backOffMultiplier" value="5"/>
                <property name="useExponentialBackOff" value="true"/>
                <property name="maximumRedeliveries" value="6"/>
            </bean>
        </property>
    </bean>

    <bean id="atomikosConnectionFactory"
class="com.atomikos.jms.AtomikosConnectionFactoryBean" init-method="init"
destroy-method="close">
        <property name="uniqueResourceName" value="amq1" />
        <property name="xaConnectionFactory" ref="jmsXaConnectionFactory" />
        <property name="localTransactionMode" value ="false" />
        <property name="maxPoolSize" value="${dbMaxConnectionPoolSize}" />
    </bean>


    

    <bean id="dataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean">
        <property name="uniqueResourceName" value="ds1" />
        <property name="testQuery" value="select 1" />
        <property name="xaDataSource" ref="sqlServerXADataSource" />
    </bean>

    <bean id="sqlServerXADataSource"
class="com.microsoft.sqlserver.jdbc.SQLServerXADataSource">
        <property name="serverName" value="${dbServerName}" />
        <property name="portNumber" value="${dbServerPort}" />
        <property name="selectMethod" value="cursor" />
        <property name="databaseName" value="${dbName}" />
        <property name="user" value="${dbUser}" />
        <property name="password" value="${dbPassword}" />
    </bean>


</blueprint>


=================================================================== 

--
View this message in context: 
http://servicemix.396122.n5.nabble.com/ServiceMix-4-4-0-OSGi-Blueprint-JTA-XA-Atomikos-tp5143855p5143855.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to