Improving reliability of servicemix-jms - servicemix looses messages when
crashing
-----------------------------------------------------------------------------------
Key: SM-555
URL: https://issues.apache.org/activemq/browse/SM-555
Project: ServiceMix
Issue Type: Improvement
Components: servicemix-jms
Affects Versions: 3.0
Reporter: Klaus Alfert
Priority: Critical
ServiceMix can loose (incoming) messages during a crashing.
The test-setup is simple: one process populates a queue, servicemix reads this
queue and writes each message in a second queue, which is consumed by a second
process. During this test servicemix is killed and restarted.
My test results showed that some times some messages are lost. Looking in the
source code reveals that reading from the queue is done with an
AUTO_ACKNOWLEDGE, which implies that there is no dependency between doing an
(implicit) commit on the queue and successful sending of a message to another
JBI endpoint. Apparently, this can result in lost messages if servicemix
crashes. I could possibly use the JCAProcessor, but then I need an external
transaction manager.
I suggest to extend the servicemix-jms binding component with the
(configurable) ability to make the read of an input queue dependent on the
successful NMR send. This would add more realiability to servicemix, if needed,
payed with a (small) loss of effeciency for wating on receiving a DONE as
MessageExchange status.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira