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

Reply via email to