Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-11211

CXF JMS transport with request-reply messaging deletes temporary queues whilst messages are still in flight

XMLWordPrintable

    • Icon: Feature Feature
    • Resolution: Done
    • Icon: Major Major
    • fuse-7.5-ER1
    • jboss-fuse-6.3
    • CXF
    • 0
    • 0% 0%
    • Todo

      An application uses the CXF SOAP/JMS transport in a request-reply pattern. The default behaviour with this pattern is to create a temporary queue, and use that temporary queue for multiple messages consumed from the same endpoint. Correlation IDs are used to match up requests and replies.

      Consider a situation where multiple request-reply exchanges are in flight, using the same temporary queue. If one of those exchanges times out, and exception is raised in the CXF JMS transport. This causes the temporary queue to be deleted (perhaps, but not certainly, because the underlying TCP connection is closed).

      A new temporary queue gets created but, by that time, all the in-flight messages fail, because the destination no longer has a replace to reply to – the temporary queue it should have replied to no longer exists. The consequence is that a minor problem is turned into a major problem, with substantial message loss.

        1. logs.zip
          4.80 MB
        2. ENTESB-11211.patch
          8 kB

              yfang@redhat.com Freeman(Yue) Fang
              rhn-support-kboone Kevin Boone
              Viliam Kasala Viliam Kasala
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: