Message stuck in queue when using transactional sessions
--------------------------------------------------------
Key: AMQCPP-195
URL: https://issues.apache.org/activemq/browse/AMQCPP-195
Project: ActiveMQ C++ Client
Issue Type: Bug
Components: CMS Impl, Openwire
Affects Versions: 2.2
Environment: ActiveMQ-CPP 2.2 with ActiveMQ 5.1 Broker.
Reporter: Timothy Bish
Assignee: Nathan Mittler
Fix For: 2.2.1
Here is what I have now done.
I used Examples/Producers/SimpleProducer.cpp to put 2000 messages onto the
queue TEST.FOO.
I then ran up Examples/Consumers/SimpleAsyncConsumer.cpp in it's default
autoack mode and it consumed all 2000 messages off the queue.
I then modified it and made the following changes:
In RunConsumer
// Create a Session
/*
if( clientAck ) {
session = connection->createSession(
Session::CLIENT_ACKNOWLEDGE );
} else {
session = connection->createSession(
Session::AUTO_ACKNOWLEDGE );
}
*/
session = connection->createSession( Session::SESSION_TRANSACTED
);
This will force the session to be transactional
Then in onMessage
/*
if( clientAck ) {
message->acknowledge();
}
*/
this->session->commit();
When I then run the example - if looks like the messages are processed
normally but message #1 is left on the queue.
If I run the exe a second time it outputs message #1 to standard out but
looking at the queue in jconsole the message is still there.
I can keep running the exe over and over and it outputs message#1 to stdout
but never removes it off the queue. This is the situation I'm seeing in my
own project.
For completeness I went back to autoack and the message was consumed and
removed from the queue.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.