You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by gnoremac <cg...@gmail.com> on 2009/09/10 00:17:40 UTC

Transactional message consumption

Hi

I am not sure if I am missing something really simple but if I run the below
test case I notice the following exception in my logs. If I change the
rollback to a commit it goes away. Can anyone help with what I am doing
wrong.

public void activeMQTest() throws Exception {
        Destination dest = ActiveMQQueue.createDestination("testQueue",
ActiveMQQueue.QUEUE_TYPE); 
        ConnectionFactory factory = new ActiveMQConnectionFactory(
               
"vm://localhost?broker.useJmx=false&broker.persistent=false");
        Connection producerConnection = factory.createConnection();
        producerConnection.start();
        Connection consumerConnection = factory.createConnection();
        consumerConnection.start();
        
        Session producerSession = producerConnection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
        MessageProducer producer = producerSession.createProducer(dest);
        TextMessage sentMsg = producerSession.createTextMessage("test...");
        producer.send(sentMsg);
        producerSession.close();
        
        Session consumerSession = consumerConnection.createSession(true,
Session.SESSION_TRANSACTED);
        MessageConsumer consumer = consumerSession.createConsumer(dest);
        TextMessage receivedMsg = (TextMessage)consumer.receive();
        consumerSession.rollback();
        consumerSession.close();
        
        assertEquals(sentMsg, receivedMsg);
        
        producerConnection.close();
        consumerConnection.close();
    }

15:13:39.032 [ActiveMQ Connection Worker: vm://localhost#2] - Async
exception with no exception listener: javax.jms.JMSException: Transaction
'TX:ID:cg-gr-44532-1252534418412-2:1:1' has not been started.
javax.jms.JMSException: Transaction 'TX:ID:cg-gr-44532-1252534418412-2:1:1'
has not been started.
	at
org.apache.activemq.broker.TransactionBroker.getTransaction(TransactionBroker.java:270)
	at
org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:190)
	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:85)
	at
org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:456)
	at org.apache.activemq.command.MessageAck.visit(MessageAck.java:205)
	at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:305)
	at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
	at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:104)
	at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
	at
org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:205)
	at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
	at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)

Thanks
-- 
View this message in context: http://www.nabble.com/Transactional-message-consumption-tp25374091p25374091.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Transactional message consumption

Posted by Rob Davies <ra...@gmail.com>.
can you raise a jira - and attach a junit test case (granting rights  
to Apache) ?
On 9 Sep 2009, at 23:17, gnoremac wrote:

>
> Hi
>
> I am not sure if I am missing something really simple but if I run  
> the below
> test case I notice the following exception in my logs. If I change the
> rollback to a commit it goes away. Can anyone help with what I am  
> doing
> wrong.
>
> public void activeMQTest() throws Exception {
>        Destination dest = ActiveMQQueue.createDestination("testQueue",
> ActiveMQQueue.QUEUE_TYPE);
>        ConnectionFactory factory = new ActiveMQConnectionFactory(
>
> "vm://localhost?broker.useJmx=false&broker.persistent=false");
>        Connection producerConnection = factory.createConnection();
>        producerConnection.start();
>        Connection consumerConnection = factory.createConnection();
>        consumerConnection.start();
>
>        Session producerSession =  
> producerConnection.createSession(false,
> Session.AUTO_ACKNOWLEDGE);
>        MessageProducer producer =  
> producerSession.createProducer(dest);
>        TextMessage sentMsg =  
> producerSession.createTextMessage("test...");
>        producer.send(sentMsg);
>        producerSession.close();
>
>        Session consumerSession =  
> consumerConnection.createSession(true,
> Session.SESSION_TRANSACTED);
>        MessageConsumer consumer =  
> consumerSession.createConsumer(dest);
>        TextMessage receivedMsg = (TextMessage)consumer.receive();
>        consumerSession.rollback();
>        consumerSession.close();
>
>        assertEquals(sentMsg, receivedMsg);
>
>        producerConnection.close();
>        consumerConnection.close();
>    }
>
> 15:13:39.032 [ActiveMQ Connection Worker: vm://localhost#2] - Async
> exception with no exception listener: javax.jms.JMSException:  
> Transaction
> 'TX:ID:cg-gr-44532-1252534418412-2:1:1' has not been started.
> javax.jms.JMSException: Transaction 'TX:ID:cg- 
> gr-44532-1252534418412-2:1:1'
> has not been started.
> 	at
> org 
> .apache 
> .activemq 
> .broker.TransactionBroker.getTransaction(TransactionBroker.java:270)
> 	at
> org 
> .apache 
> .activemq 
> .broker.TransactionBroker.acknowledge(TransactionBroker.java:190)
> 	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:85)
> 	at
> org 
> .apache 
> .activemq 
> .broker 
> .TransportConnection.processMessageAck(TransportConnection.java:456)
> 	at org.apache.activemq.command.MessageAck.visit(MessageAck.java:205)
> 	at
> org 
> .apache 
> .activemq 
> .broker.TransportConnection.service(TransportConnection.java:305)
> 	at
> org.apache.activemq.broker.TransportConnection 
> $1.onCommand(TransportConnection.java:179)
> 	at
> org 
> .apache 
> .activemq 
> .transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:104)
> 	at
> org 
> .apache 
> .activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
> 	at
> org 
> .apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java: 
> 205)
> 	at
> org 
> .apache 
> .activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
> 	at
> org.apache.activemq.thread.PooledTaskRunner 
> $1.run(PooledTaskRunner.java:43)
> 	at
> java.util.concurrent.ThreadPoolExecutor 
> $Worker.runTask(ThreadPoolExecutor.java:886)
> 	at
> java.util.concurrent.ThreadPoolExecutor 
> $Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
>
> Thanks
> -- 
> View this message in context: http://www.nabble.com/Transactional-message-consumption-tp25374091p25374091.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>

Rob Davies
I work here: http://fusesource.com
My Blog: http://rajdavies.blogspot.com/
I'm writing this: http://www.manning.com/snyder/