activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <james.strac...@gmail.com>
Subject Re: XA with ActiveMQ 4.0.1 on JBoss 4.0.2
Date Wed, 16 Aug 2006 15:26:57 GMT
How are you registering the RA with JBoss and how are you wiring the
RA with the Spring TM? A test case would be handy to see what you are
doing.

On 8/16/06, PeterNilsson <peter.nilsson.se@gmail.com> wrote:
>
> Hi,
>
> I can't manage to get my outbound Jms messages to be enlisted in the JTA
> transaction. My testcase does some database access, sends a JMS message and
> the throws an exception which causes rollback. Despite the rollback the
> message is sent and what I can see from the log the session is not enlisted
> in the JTA tx.
> I am using Spring JtaTransactionManger with a JNDI ref to the JBoss
> transaction manager. I am using the ActiveMQ ra which is deployed to JBoss.
> The relevant parts of configuration are after the log file below.
>
> Any hints on what need to be changed?
>
>    br,
>
>    Peter Nilsson
>
> Part of log file:
> 2006-08-16 10:03:54,556 DEBUG
> [org.apache.activemq.transport.WireFormatNegotiator] Sending: WireFormatInfo
> { version=1, properties={TightEncodingEnabled=true, TcpNoDelayEnabled=true,
> SizePrefixDisabled=false, StackTraceEnabled=true,
> MaxInactivityDuration=30000, CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
> 2006-08-16 10:03:54,556 DEBUG
> [org.apache.activemq.transport.tcp.TcpTransport] TCP consumer thread
> starting
> 2006-08-16 10:03:54,556 DEBUG
> [org.apache.activemq.transport.WireFormatNegotiator] Received WireFormat:
> WireFormatInfo { version=1, properties={StackTraceEnabled=true,
> TightEncodingEnabled=true, TcpNoDelayEnabled=true, SizePrefixDisabled=false,
> MaxInactivityDuration=30000, CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
> 2006-08-16 10:03:54,556 DEBUG
> [org.apache.activemq.transport.WireFormatNegotiator] tcp:///127.0.0.1:2181
> before negotiation: OpenWireFormat{version=1, cacheEnabled=false,
> stackTraceEnabled=false, tightEncodingEnabled=false,
> sizePrefixDisabled=false}
> 2006-08-16 10:03:54,556 DEBUG
> [org.apache.activemq.transport.WireFormatNegotiator] tcp:///127.0.0.1:2181
> after negotiation: OpenWireFormat{version=1, cacheEnabled=true,
> stackTraceEnabled=true, tightEncodingEnabled=true, sizePrefixDisabled=false}
> # Starting jta transaction
> 2006-08-16 10:03:54,967 DEBUG
> [org.springframework.transaction.interceptor.TransactionInterceptor] Getting
> transaction for
> com.omxgroup.bb.bong.ws.xatester.XATester.createPartyAndSendAndRollback
> 2006-08-16 10:03:54,967 DEBUG
> [org.springframework.transaction.jta.JtaTransactionManager] Using
> transaction object
> [org.springframework.transaction.jta.JtaTransactionObject@12fca35]
> 2006-08-16 10:03:54,967 DEBUG
> [org.springframework.transaction.jta.JtaTransactionManager] Creating new
> transaction with name
> [com.omxgroup.bb.bong.ws.xatester.XATester.createPartyAndSendAndRollback]
> 2006-08-16 10:03:54,967 DEBUG
> [org.springframework.transaction.jta.JtaTransactionManager] Beginning JTA
> transaction
> 2006-08-16 10:03:54,967 DEBUG
> [org.springframework.transaction.support.TransactionSynchronizationManager]
> Initializing transaction synchronization
> # Do business logic including database access
> 2006-08-16 10:03:54,967 DEBUG
> [org.springframework.transaction.support.TransactionSynchronizationManager]
> Bound value [kodo.jdbc.ee.JDBCConnectionFactory@d1d45634] for key [class
> com.omxgroup.bb.bong.framework.persistence.JdoPmFactorySingleton] to thread
> [Thread-108]
> 2006-08-16 10:03:54,967 DEBUG
> [org.springframework.transaction.support.TransactionSynchronizationManager]
> Retrieved value [kodo.jdbc.ee.JDBCConnectionFactory@d1d45634] for key [class
> com.omxgroup.bb.bong.framework.persistence.JdoPmFactorySingleton] bound to
> thread [Thread-108]
> 2006-08-16 10:03:54,967 DEBUG
> [org.springframework.orm.jdo.PersistenceManagerFactoryUtils] Opening JDO
> PersistenceManager
> 2006-08-16 10:03:54,967 DEBUG
> [org.springframework.orm.jdo.PersistenceManagerFactoryUtils] Registering
> transaction synchronization for JDO PersistenceManager
> 2006-08-16 10:03:54,967 DEBUG
> [org.springframework.transaction.support.TransactionSynchronizationManager]
> Bound value [org.springframework.orm.jdo.PersistenceManagerHolder@19f50f]
> for key [kodo.jdbc.ee.JDBCConnectionFactory@d1d45634] to thread [Thread-108]
> 2006-08-16 10:03:54,967 DEBUG
> [org.springframework.transaction.support.TransactionSynchronizationManager]
> Retrieved value [kodo.jdbc.ee.JDBCConnectionFactory@d1d45634] for key [class
> com.omxgroup.bb.bong.framework.persistence.JdoPmFactorySingleton] bound to
> thread [Thread-108]
> 2006-08-16 10:03:54,967 DEBUG
> [org.springframework.transaction.support.TransactionSynchronizationManager]
> Retrieved value
> [org.springframework.orm.jdo.PersistenceManagerHolder@19f50f] for key
> [kodo.jdbc.ee.JDBCConnectionFactory@d1d45634] bound to thread [Thread-108]
> # Send jms message
> 2006-08-16 10:03:54,987 DEBUG [org.springframework.jms.core.JmsTemplate]
> Executing callback on JMS Session [ManagedSessionProxy { ActiveMQSession
> {id=ID:SE10LT1240-2147-1155715337754-12:22:2,started=false} }] from
> connection [org.apache.activemq.ra.ManagedConnectionProxy@b7ec3a]
> 2006-08-16 10:03:54,987 DEBUG [org.springframework.jms.core.JmsTemplate]
> Sending created message [ActiveMQTextMessage {commandId = 0,
> responseRequired = false, messageId = null, originalDestination = null,
> originalTransactionId = null, producerId = null, destination = null,
> transactionId = null, expiration = 0, timestamp = 0, arrival = 0,
> correlationId = null, replyTo = null, persistent = false, type = null,
> priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null,
> compressed = false, userID = null, content = null, marshalledProperties =
> null, dataStructure = null, redeliveryCounter = 0, size = 0, properties =
> {JMS_DESTINATION=XA_ROUTED}, readOnlyProperties = false, readOnlyBody =
> false, text = <?xml version="1.0"
> encoding="UTF-8"?><ns4:PartyAndPartyRolesNDO
> xmlns:ns4="http://www.omxgroup.com/bb/bong/ndo/party"
> xmlns:ns2="http://www.omxgroup.com/bb/bong/ws/xatester"
> xmlns:ns3="http://www.omxgroup.com/bb/bong/ndo/sapbp"><Individual><Id><IdentifierType>SPS</IdentifierType><ObjectType>PARTY</ObjectType><Value>802</Value></Id><Name>Boris
> Becker</Name><Address><Type>OFFICIAL_ADDRESS</Type><Line1>Upplandsgatan
> 56</Line1><Line2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/><Line3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/><PostalCode>113
> 28</PostalCode><City>Stockholm</City><Country>SE</Country></Address><Status>NORMAL</Status><OwnedBy
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/><TaxStatus>NORMAL</TaxStatus><TaxPercentage>0.45</TaxPercentage><LegalEntity
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/><ManagedBy><IdentifierType>SPS</IdentifierType><ObjectType>PARTY_ROLE</ObjectType><Value>0</Value></ManagedBy><ReportLanguage>EN</ReportLanguage><Template>false</Template><MemberOf><Id><IdentifierType>SPS</IdentifierType><ObjectType>CATEGORY</ObjectType><Value>0</Value></Id></MemberOf><ExtraIdentifiers><IdentifierType>SE_PIN</IdentifierType><ObjectType>PARTY</ObjectType><Value>681201-5555</Value></ExtraIdentifiers><Firstname>Boris</Firstname><Lastname>Becker</Lastname><Title
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/><TaxDomicile>SE</TaxDomicile><Nationality>SE</Nationality><PlaceOfBirth>Düsseldorf</PlaceOfBirth><DateOfBirth>1974-01-03</DateOfBirth></Individual><CustomerRole><Id><IdentifierType>SPS</IdentifierType><ObjectType>PARTY_ROLE</ObjectType><Value>803</Value></Id><Status>ACTIVE</Status><Comment
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/><Verified>false</Verified><ContactInfo
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/><AcceptsMarketInfo>false</AcceptsMarketInfo></CustomerRole></ns4:PartyAndPartyRolesNDO>}]
> 2006-08-16 10:03:54,987 DEBUG [org.apache.activemq.ActiveMQSession] Sending
> message: ActiveMQTextMessage {commandId = 0, responseRequired = false,
> messageId = ID:SE10LT1240-2147-1155715337754-12:22:2:1:1,
> originalDestination = null, originalTransactionId = null, producerId =
> ID:SE10LT1240-2147-1155715337754-12:22:2:1, destination = queue://XA_ROUTED,
> transactionId = null, expiration = 0, timestamp = 1155715434987, arrival =
> 0, correlationId = null, replyTo = null, persistent = true, type = null,
> priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null,
> compressed = false, userID = null, content = null, marshalledProperties =
> null, dataStructure = null, redeliveryCounter = 0, size = 0, properties =
> {JMS_DESTINATION=XA_ROUTED}, readOnlyProperties = true, readOnlyBody = true,
> text = <?xml version="1.0" encoding="UTF-8"?><ns4:PartyAndPartyRolesNDO
> xmlns:ns4="http://www.omxgroup.com/bb/bong/ndo/party"
> xmlns:ns2="http://www.omxgroup.com/bb/bong/ws/xatester"
> xmlns:ns3="http://www.omxgroup.com/bb/bong/ndo/sapbp"><Individual><Id><IdentifierType>SPS</IdentifierType><ObjectType>PARTY</ObjectType><Value>802</Value></Id><Name>Boris
> Becker</Name><Address><Type>OFFICIAL_ADDRESS</Type><Line1>Upplandsgatan
> 56</Line1><Line2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/><Line3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/><PostalCode>113
> 28</PostalCode><City>Stockholm</City><Country>SE</Country></Address><Status>NORMAL</Status><OwnedBy
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/><TaxStatus>NORMAL</TaxStatus><TaxPercentage>0.45</TaxPercentage><LegalEntity
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/><ManagedBy><IdentifierType>SPS</IdentifierType><ObjectType>PARTY_ROLE</ObjectType><Value>0</Value></ManagedBy><ReportLanguage>EN</ReportLanguage><Template>false</Template><MemberOf><Id><IdentifierType>SPS</IdentifierType><ObjectType>CATEGORY</ObjectType><Value>0</Value></Id></MemberOf><ExtraIdentifiers><IdentifierType>SE_PIN</IdentifierType><ObjectType>PARTY</ObjectType><Value>681201-5555</Value></ExtraIdentifiers><Firstname>Boris</Firstname><Lastname>Becker</Lastname><Title
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/><TaxDomicile>SE</TaxDomicile><Nationality>SE</Nationality><PlaceOfBirth>Düsseldorf</PlaceOfBirth><DateOfBirth>1974-01-03</DateOfBirth></Individual><CustomerRole><Id><IdentifierType>SPS</IdentifierType><ObjectType>PARTY_ROLE</ObjectType><Value>803</Value></Id><Status>ACTIVE</Status><Comment
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/><Verified>false</Verified><ContactInfo
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/><AcceptsMarketInfo>false</AcceptsMarketInfo></CustomerRole></ns4:PartyAndPartyRolesNDO>}
> 2006-08-16 10:03:55,027 DEBUG
> [org.apache.activemq.store.journal.JournalMessageStore] Journalled message
> add for: ID:SE10LT1240-2147-1155715337754-12:22:2:1:1, at: 0:52247
> 2006-08-16 10:03:55,047 DEBUG
> [org.springframework.transaction.support.TransactionSynchronizationManager]
> Removed value [kodo.jdbc.ee.JDBCConnectionFactory@d1d45634] for key [class
> com.omxgroup.bb.bong.framework.persistence.JdoPmFactorySingleton] from
> thread [Thread-108]
> # Throw an exception to force rollback
> 2006-08-16 10:03:55,047 ERROR [service] Exit
> XATesterImpl.createPartyAndSendAndRollback() exception:
> java.lang.RuntimeException: Explicitly thrown exception.
> 2006-08-16 10:03:55,047 DEBUG
> [org.springframework.transaction.interceptor.RuleBasedTransactionAttribute]
> Applying rules to determine whether transaction should rollback on
> com.omxgroup.bb.bong.framework.errorhandling.SystemException
> 2006-08-16 10:03:55,047 DEBUG
> [org.springframework.transaction.interceptor.RuleBasedTransactionAttribute]
> Winning rollback rule is: null
> 2006-08-16 10:03:55,047 DEBUG
> [org.springframework.transaction.interceptor.RuleBasedTransactionAttribute]
> No relevant rollback rule found: applying superclass default
> 2006-08-16 10:03:55,047 DEBUG
> [org.springframework.transaction.interceptor.TransactionInterceptor]
> Invoking rollback for transaction on
> com.omxgroup.bb.bong.ws.xatester.XATester.createPartyAndSendAndRollback due
> to throwable [com.omxgroup.bb.bong.framework.errorhandling.SystemException]
> 2006-08-16 10:03:55,047 DEBUG
> [org.springframework.transaction.jta.JtaTransactionManager] Triggering
> beforeCompletion synchronization
> 2006-08-16 10:03:55,047 DEBUG
> [org.springframework.transaction.support.TransactionSynchronizationManager]
> Removed value [org.springframework.orm.jdo.PersistenceManagerHolder@19f50f]
> for key [kodo.jdbc.ee.JDBCConnectionFactory@d1d45634] from thread
> [Thread-108]
> 2006-08-16 10:03:55,047 DEBUG
> [org.springframework.orm.jdo.PersistenceManagerFactoryUtils] Closing JDO
> PersistenceManager
> 2006-08-16 10:03:55,047 DEBUG
> [org.springframework.transaction.jta.JtaTransactionManager] Initiating
> transaction rollback
> 2006-08-16 10:03:55,047 DEBUG
> [org.springframework.transaction.jta.JtaTransactionManager] Rolling back JTA
> transaction
> 2006-08-16 10:03:55,047 DEBUG
> [org.springframework.transaction.jta.JtaTransactionManager] Triggering
> afterCompletion synchronization
> 2006-08-16 10:03:55,047 DEBUG
> [org.springframework.transaction.support.TransactionSynchronizationManager]
> Clearing transaction synchronization
>
> Relevant Spring configuration:
> <bean id="baseJdoTransactionInterceptor" abstract="true"
>
> class="org.springframework.transaction.interceptor.TransactionInterceptor">
>   <property name="transactionManager">
>     <bean class="org.springframework.transaction.jta.JtaTransactionManager">
>       <property name="userTransactionName">
>         <null/>
>       </property>
>       <property name="transactionManager" ref="txManager"/>
>     </bean>
>   </property>
> </bean>
> <bean id="txManager" class="org.springframework.jndi.JndiObjectFactoryBean">
>   <property name="jndiName">
>     <value>java:/TransactionManager</value>
>   </property>
> </bean>
> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"
> abstract="true">
>   <property name="connectionFactory">
>     <ref local="jmsConnectionFactory"/>
>   </property>
>   <property name="pubSubDomain" value="false"/>
> </bean>
> <bean id="broker" class="org.apache.activemq.xbean.BrokerFactoryBean">
>   <property name="config" value="classpath:activemq.xml"/>
>   <property name="start" value="true"/>
> </bean>
> <bean id="jmsConnectionFactory"
> class="org.springframework.jndi.JndiObjectFactoryBean">
>   <property name="jndiName">
>     <value>java:/activemq/QueueConnectionFactory</value>
>   </property>
> </bean>
>
> activemq-ds.xml deployed to JBoss contains:
> <connection-factories>
>   <tx-connection-factory>
>     <jndi-name>activemq/QueueConnectionFactory</jndi-name>
>     <xa-transaction/>
>     <track-connection-by-tx/>
>     <rar-name>activemq-ra-4.0.1.rar</rar-name>
>
> <connection-definition>javax.jms.QueueConnectionFactory</connection-definition>
>   </tx-connection-factory>
> </connection-factories>
>
>
> --
> View this message in context: http://www.nabble.com/XA-with-ActiveMQ-4.0.1-on-JBoss-4.0.2-tf2113894.html#a5828407
> Sent from the ActiveMQ - User forum at Nabble.com.
>
>


-- 

James
-------
http://radio.weblogs.com/0112098/

Mime
View raw message