Hi everyone
We are having a similar problem to this one:
http://www.nabble.com/JMSException-Transaction-*-has-not-been-started-t1563748.html#a4246798
using ActiveMQ 4.1.1 Broker (right now we cannot use 5.0 in our
production environment).
Basically, we have some consumers using transactions (consume/commit),
and we cannot use CLIENT_ACKNOWLEDGE). When forcing a slow DB access
when consuming messages, we finally get the same error on all consumers:
[DEBUG][2007/10/17.11:01:05.960][ActiveMQ Transport:
tcp:///127.0.0.1:37264]Async error occurred: javax.jms.JMSException:
Transaction 'TX:ID:sombra-37249-1192611298747-0:0:4842' has not been
started.(Transaction 'TX:ID:sombra-37249-1192611298747-0:0:4842' has not
been started.)
Full stack:
Oct 17, 2007 11:01:06 AM org.apache.activemq.ActiveMQConnection
onAsyncException
WARNING: Async exception with no exception listener:
javax.jms.JMSException: Transaction
'TX:ID:sombra-37249-1192611298747-0:0:4847' has not been started.
javax.jms.JMSException: Transaction
'TX:ID:sombra-37249-1192611298747-0:0:4847' has not been started.
at
org.apache.activemq.broker.TransactionBroker.getTransaction(TransactionBroker.java:230)
at
org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:173)
at
org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
at
org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
at
org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:88)
at
org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:506)
at org.apache.activemq.command.MessageAck.visit(MessageAck.java:179)
at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:294)
at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185)
at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65)
at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:133)
at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:127)
at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
at java.lang.Thread.run(Unknown Source)
So, to make long story short: we need transacted consumers, with
(ocasionally) slow DB access (no journal possible), and we need to avoid
this exception. Does anyone know how to avoid it?
Thank you in advance and best regards
Eduardo