activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From PeterNilsson <peter.nilsson...@gmail.com>
Subject XA with ActiveMQ 4.0.1 on JBoss 4.0.2
Date Wed, 16 Aug 2006 08:23:33 GMT

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.


Mime
View raw message