Hey MarkS,
The transaction manager you use can't do distributed transaction even if SQL 
Server providers xa compatible data source implementation.

If you are looking for XA then please take a look on Camel in Action samples 
(chapter 9 uses atomikos). In exampel configuration you will find how to wrap 
data sources and JMS connection factories.

Best regards,
Łukasz Dywicki
--
Code-House
http://code-house.org


Wiadomość napisana przez MarkS1900 w dniu 2012-01-26, o godz. 23:36:

> 
> I have a Aries Blueprint file in my ServiceMix OSGi bundle, and I want to
> achieve JTA/XA transactions using the default ServiceMix 4.4.0
> ("features:install transaction").
> 
> I am NOT using JPA, just raw JDBC calls.
> 
> How do I register my Xa Jms ConnectionFactory
> (org.apache.activemq.ActiveMQXAConnectionFactory) and my Xa DataSource
> (com.microsoft.sqlserver.jdbc.MySQLServerXADataSource) with the container's
> transaction manager?
> 
> 
> <?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";
>> 
> 
> 
>    <reference id="ariesTransactionManager"
> interface="javax.transaction.TransactionManager" />
> 
> 
>    <reference id="platformTransactionManager"
> interface="org.springframework.transaction.PlatformTransactionManager" />
> 
> </blueprint>
> 
> 
> 
> I am expecting working code to take the following form:
> 
> --------  OPTION 1  --------
> 
> 
>    <bean id="transactionServiceBean"
> class="test.xa.service.TransactionServiceBean">
>        <property name="transactionManager" ref="platformTransactionManager"
> />
>       <property name="persistenceHelper" ref="persistenceHelperXa" />
>    </bean>
> 
> public class TransactionServiceBean
> {
>    //...
> 
>    public void doTransactionCommit()
>    {
> 
>        LOG.info( "doTransactionCommit() ->" );
> 
>        TransactionStatus transactionStatus;
> 
>        try
>        {
>            transactionStatus = transactionManager.getTransaction(
> transactionDefinition );
> 
>        }
>        catch( Exception e )
>        {
>            LOG.error( "Transaction failed:  ", e );
>            return;
>        }
> 
>        try
>        {
>           //  ...
>            //  DO JMS AND JDBC STUFF HERE
>           //  ...
> 
>            transactionManager.commit( transactionStatus );
> 
>        }
>        catch( Exception e1 )
>        {
>            LOG.error( "Commit failed:  ", e1 );
> 
>            try
>            {
>                transactionManager.rollback( transactionStatus );
>            }
>            catch ( Exception e2 )
>            {
>                LOG.error( "Rollback failed:  ", e2 );
>                throw new RuntimeException( e2 );
>            }
> 
>            throw new RuntimeException( e1 );
>        }
> 
>        LOG.info( "doTransactionCommit() <-" );
> 
> 
>    }
> 
>    // ...
> }
> 
> --------  OPTION 2  --------
> 
> 
>    <bean id="transactionServiceBean"
> class="test.xa.service.TransactionServiceBean">
>        <tx:transaction method="do*" value="RequiresNew" />
>    </bean>
> 
> public class TransactionServiceBean
> {
>    //...
> 
>    public void doTransactionCommit()
>    {
> 
>        LOG.info( "doTransactionCommit() ->" );
> 
>        //  ...
>        //  DO JMS AND JDBC STUFF HERE
>       //  ...
> 
>        LOG.info( "doTransactionCommit() <-" );
> 
> 
>    }
> 
>    // ...
> }
> 
> 
> 
> 
> 
> 
> 
> --
> View this message in context: 
> http://servicemix.396122.n5.nabble.com/JTA-XA-transactions-using-the-default-ServiceMix-4-4-0-features-install-transaction-tp5434170p5434170.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to