[
https://issues.apache.org/jira/browse/PROTON-1512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16173507#comment-16173507
]
Alan Conway commented on PROTON-1512:
-------------------------------------
Not sure I understand the problem.
First: If a frame is aborted, by definition it's content (if any) is irrelevant
and must be discarded, so it seems correct to return PN_STATE immediately;
rather than return data that can only be thrown away. You can call
pn_delivery_aborted() to tell the difference between an aborted frame and some
other problem that causes a PN_STATE return. If you want to send an aborted
frame, it doesn't need to have any data in it - it would be ignored in any
case.
Second: Why would you ever send a single-frame message with the aborted flag
set? The only reason to abort a message is if >0 frames are already sent and
there are >0 frames left to go but the remaining frames can never be sent for
some reason. If a message is complete in a single frame then either send it or
don't - there's no reason to use aborted.
> Expose the "aborted" flag for transferred deliveries
> ----------------------------------------------------
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
> Issue Type: New Feature
> Components: proton-c
> Reporter: Ted Ross
> Assignee: Alan Conway
> Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e.
> frames for large multi-frame messages are forwarded to destinations as they
> arrive, before the complete message is received), there is a need to handle
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the
> transfer performative. If the router is in the process of streaming a large
> message from sender to receiver and the sender drops before completing the
> delivery, the router can send a transfer to the downstream receivers with the
> "aborted" flag set. This would indicate that the message should not be
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a
> pn_link_abort in the C header file, but it is commented out and not
> implemented).
> In order to properly handle the failure cases for message streaming, this
> feature must be usable in Proton.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]