Uploaded image for project: 'ServiceMix Components'
  1. ServiceMix Components
  2. SMXCOMP-768

Invalid asynchronous behavior with EIP filter

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Reopened
    • Major
    • Resolution: Unresolved
    • servicemix-eip-2010.01
    • 2013.02
    • servicemix-eip
    • None
    • Fuse ESB - 3.3.1.8

    • Patch Available

    Description

      Using the EIP message filter with Fuse ESB 3.3.1.8 we noticed incorrect acking when data is sent asynchronously with a large data pipeline. If the filter is used as an intermediate point within the pipeline it will incorrectly ack the downstream service engines before an upstream exchange has sent back its response. This becomes troublesome in the case where transactions may be used and an upstream exchange returns an error after the downstream component has completed its exchange. Consider the following case where a JMS consumer sends to an HTTP provider through an EIP filter.

      JMS -> FILTER -> HTTP

      When the JMS consumer sends a message to the filter asynchronously the EIP filter acks the JMS consumer immediately regardless of whether the HTTP component has handled it properly. As a result the JMS component has no way to recover from an HTTP fault or error. I've attached a patch that changes the current asynchronous fire and forget behavior to be consistent to how it is done with the EIP static recipient list and pipeline by maintaining a store of exchanges and acking downstream exchanges in an ordered fashion.

      Attachments

        1. MessageFilter-3.3.1.8-fuse.diff
          4 kB
          Trevor Pounds

        Activity

          People

            jbonofre Jean-Baptiste Onofré
            tpounds Trevor Pounds
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: