[ 
https://issues.apache.org/jira/browse/PROTON-1512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16172363#comment-16172363
 ] 

Chuck Rolke commented on PROTON-1512:
-------------------------------------

Testing this feature there is an issue with how it is implemented. If a 
single-frame message comes in with abort=true in the header then pn_link_recv 
does not deliver any of the message. Instead it just delivery the -5 state 
error. In the case where the second message is aborted pn_link_recv returns:
{noformat}
125 - some length 1
-1 - EOS
-5 - STATE_ERROR
{noformat}

When two normal, short messages are received pn_link_recv returns:
{noformat}
125 - some length 1
-1 - EOS
125 - some length 2
-1 - EOS
{noformat}

In order for the router to have some message header to send down the line 
proton must deliver the content of the header that had the abort=true.
{noformat}
125 - some length 1
-1 - EOS
125 - some length 2
-5 - STATE_ERROR
{noformat}


> 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: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to