XA transaction fails to prepare commit
--------------------------------------

                 Key: AMQ-1617
                 URL: https://issues.apache.org/activemq/browse/AMQ-1617
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker, Transport
    Affects Versions: 4.1.2, 5.1.0
         Environment: Windows XP, glassfish v2 UR1
            Reporter: Kai Hudalla


I am trying to do a database update and send a message to ActiveMQ via JMS in a 
single XA transaction. When tha JTA transaction manager tries to prepare the 
commit I get the following in the ActiveMQ log and the transaction is rolled 
back.

2008-03-12 11:09:01,713 [/127.0.0.1:2399] DEBUG TransportConnection            
- Setting up new connection: /127.0.0.1:2399
2008-03-12 11:09:01,713 [/127.0.0.1:2399] DEBUG AbstractRegion                 
- Adding consumer: ID:FE-Z2965-2033-1205312064755-0:30:-1:1
2008-03-12 11:09:01,728 [/127.0.0.1:2399] DEBUG AMQMessageStore                
- Journalled transacted message add for: 
ID:FE-Z2965-2033-1205312064755-0:30:1:1:1, at: offset = 3213, file = 1, size = 
557, type = 1
2008-03-12 11:09:01,728 [/127.0.0.1:2399] DEBUG AbstractRegion                 
- Removing consumer: ID:FE-Z2965-2033-1205312064755-0:30:-1:1
2008-03-12 11:09:01,728 [/127.0.0.1:2399] DEBUG Service                        
- Error occured while processing sync command: java.lang.NullPointerException: 
Context is null
java.lang.NullPointerException: Context is null
        at 
org.apache.activemq.broker.TransportConnection.processPrepareTransaction(TransportConnection.java:375)
        at 
org.apache.activemq.command.TransactionInfo.visit(TransactionInfo.java:98)
        at 
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:291)
        at 
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:181)
        at 
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
        at 
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:134)
        at 
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:204)
        at 
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
        at 
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:196)
        at 
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:183)
        at java.lang.Thread.run(Thread.java:595)
2008-03-12 11:09:01,744 [/127.0.0.1:2399] DEBUG TransportConnection            
- Setting up new connection: /127.0.0.1:2399
2008-03-12 11:09:01,744 [/127.0.0.1:2399] DEBUG AbstractRegion                 
- Adding consumer: ID:FE-Z2965-2033-1205312064755-0:30:-1:2
2008-03-12 11:09:01,760 [/127.0.0.1:2399] DEBUG XATransaction                  
- XA Transaction rollback: 
XID:4871251:0f000000549135a246452d5a323936352c7365727665722c5033373030:46452d5a323936352c7365727665722c50333730302c01
2008-03-12 11:09:01,760 [/127.0.0.1:2399] DEBUG AMQMessageStore                
- Transacted message add rollback for: 
ID:FE-Z2965-2033-1205312064755-0:30:1:1:1, at: offset = 3213, file = 1, size = 
557, type = 1

The problem seems to be that the current connection is unregistered from the 
org.apache.activemq.broker.TransportConnectionStateRegister once the message is 
written to the journal and no new connection is registered before the 
processPrepareTransaction invocation. However, I have no idea where to look in 
the code to fix this.

Regards,
Kai

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to