Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-3097

ws-rm ImmediateAcknowledgement doesn't work for ws-rm client side

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.3, 2.2.11
    • 2.2.12, 2.3.1, 2.4
    • WS-* Components
    • None

    Description

      For ws-rm configuration, if acknowledgementInterval is 0(the default value), both client and server side will use ImmediateAcknowledgement, which means try best to not create out-of-bound SequenceAcknowledgement, this can gain higher performance.
      For server side, the behavior is put SequenceAcknowledgement header to the response message, for client side, the behavior is put SequenceAcknowledgement header to next invocation request message in the rm sequence.

      This can cause problem for client side when receive last response message which has SequenceAcknowledgement header, client will never ack the last response because there's no next invocation request which can piggyback the SequenceAcknowledgement header, and so server side will always resend the message.
      As in real scenario we generally don't know how many invocation we want to trigger on a certain endpoint, so we actually don't know which message is last response during runtime.

      We can see this problem if we edit SequenceTest.testTwowayNonAnonymous(), add
      Thread.sleep(10000);
      before
      verifyTwowayNonAnonymous();
      to let the server side resend happen.
      And observe the log we can get a clear idea about this issue.
      We should be able to provide a configurable timeout for AcksPolicy, so that the we get chance to send a out-of-bound SequenceAcknowledgement for the last response in this case.

      Attachments

        Activity

          People

            ffang Freeman Yue Fang
            ffang Freeman Yue Fang
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: