OASIS ebXML Messaging Services TC

 View Only

RE: T2: ackRequested attribute in Via element

  • 1.  RE: T2: ackRequested attribute in Via element

    Posted 08-07-2001 10:20
    
    Be careful.  If the goal is to reliably deliver a message from the From
    party to a To party through one or more intermediaries, the only ACK that
    matters is the one from the To party's MSH when that MSH has placed the
    message in a persistent store. ACKs from the intermediaries, when they
    receive the message, do not accomplish anything useful because the message
    may be lost at or upstream of any intermediary.
    
    Regards,
    Marty
    
    *************************************************************************************
    
    Martin W. Sachs
    IBM T. J. Watson Research Center
    P. O. B. 704
    Yorktown Hts, NY 10598
    914-784-7287;  IBM tie line 863-7287
    Notes address:  Martin W Sachs/Watson/IBM
    Internet address:  mwsachs @ us.ibm.com
    *************************************************************************************
    
    
    
    David Fischer <david@drummondgroup.com> on 08/07/2001 01:01:45 AM
    
    To:   "Burdett, David" <david.burdett@commerceone.com>, "'Arvola Chan'"
          <arvola@tibco.com>, ebXML Msg <ebxml-msg@lists.oasis-open.org>
    cc:   mwang@tibco.com
    Subject:  RE: T2: ackRequested attribute in Via element
    
    
    
    
    David,
    
    In your example about an intermediate hop  being different, how would the
    AckRequested be passed through?� Each  intermediary must recreate the Via
    for the next hop based upon values it  receives.� Let's say we have�6 hops
    and the middle hop (3-4) is  MQseries so it doesn't need AckRequested.� Hop
    1 sends to Hop 2 with the  Via element including AckRequested=signed
    (sign/unsigned doesn't matter here)  and actor=next.� Hop�2 consumes the
    Via header and recreates a Via  with AckRequested=signed and actor=next
    because that's what came to it and sends  to Hop 3.� Hop 3 creates a Via
    with AckRequested=none and actor=next  because its hop doesn't need it and
    sends to Hop 4.� How does Hop 4 know to  reset AckRequested=signed before
    it sends to Hop 5?� Am I missing something  here?
    
    I don't think this works.� I  understand the desire to have things change
    on a per hop basis but I don't think  it works the way we have it now.� We
    always have to leave AckRequested to  the same value even if we don't need
    it for some hop -- so, it doesn't need to  go in Via.� This  goes back to
    the question of what is the difference between an Ack and a
    DeliveryReceipt for single-hop?� IMO the answer is Via should not be passed
    to the end and DeliveryReceipt should be the end-to-end Ack.
    
    Why do we need AckRequested at all?� All we  have to do is have
    intermediate hops send back an Ack to the previous hop based  on the value
    of DeliveryReceiptRequested.
    
    PROPOSAL
    1.� Get rid of AckRequested.
    2. �Intermediate hop sends an Ack to the previous  hop based upon the value
    of DeliveryReceiptRequested unless overridden by a  local CPA.
    3.� End node sends a DeliveryReceipt, which acts  the same as an Ack, to
    the sender�based upon the value of  DeliveryReceiptRequested.
    
    
    On the problem with unlimited messages, IMO�the  observation is correct.
    We should not allow�an Ack to an Error.�  We should also not allow�an Ack
    to an Ack or an Error to an Error.� We  should still allow an Error to an
    Ack(we can  only allow one or the other).
    
    David.