Resource adapter stops consuming messages after broker is forcefully
stopped/restarted during XA transaction.
-------------------------------------------------------------------------------------------------------------
Key: AMQ-1719
URL: https://issues.apache.org/activemq/browse/AMQ-1719
Project: ActiveMQ
Issue Type: Bug
Components: Broker, Connector
Affects Versions: 5.1.0
Environment: Windows XP, IBM WebSphere 6.1.0.15, Oracle 10.2.0.3, Java
1.5.0 ( IBM J9 VM), ActiveMQ 5.1.0 downloaded 2008-May-12.
Reporter: Johan Ekesparr
Attachments: apache-activemq-5.1.0_data.tar.zip, DemoEAR.ear,
websphere_trace.log
Have attached logs from websphere, activeMQ and also the content of the
datadirectory for details of data state ( plus the smal program used to create
the scenario).
#1. Installed the resource adapter that came with ActiveMQ into the websperhe
applicationserver and configured it to connect to external broker using
failover.
#2. Setup a JDBC XA datasource ( Oracle ) and JMS XA destination ( ActiveMQ ).
#3. Created a small Message Driven bean that receives a JMS message that it
tries to store in the database after which it sleeps for 5 secs. And deployed
it to the WebSphere appserver.
#4. Started the activemq broker without doing any modifications since the
download and extract into the filesystem.
#5. Started applicationserver.
#6. Started publishing messages to the broker
#7. As expected the Message driven bean received the messages one-by-one and
processed them.
#8. Used to ctrl-C on the broker to halt it in the middle of the processing.
Resulting in a failed commit of XA transaction.
#9. Waited a while and then started broker again.
#10. Received Exception on client side and nothing more happened.
Exception in thread "ActiveMQ Transport: tcp://localhost/127.0.0.1:61616"
java.lang.NullPointerException
at
org.apache.activemq.state.ConnectionStateTracker$RemoveTransactionAction.run(ConnectionStateTracker.java:84)
at org.apache.activemq.state.Tracked.onResponses(Tracked.java:31)
at
org.apache.activemq.transport.failover.FailoverTransport$3.onCommand(FailoverTransport.java:148)
at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143)
at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:206)
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:801)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.