Uploaded image for project: 'ServiceMix'
  1. ServiceMix
  2. SM-555

Improving reliability of servicemix-jms - servicemix looses messages when crashing

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 3.0.1
    • 3.2
    • servicemix-jms
    • None

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              gnodet Guillaume Nodet
              alfert Klaus Alfert
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: