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

Ilya Lebedev commented on AMQ-6657:
-----------------------------------

[OASIS spec 
|http://docs.oasis-open.org/amqp/core/v1.0/csd02/amqp-core-messaging-v1.0-csd02.html#type-modified]
 tells us:

{quote}
At the source the modified outcome means that the message is no longer acquired 
by the receiver, and has been made available for (re-)delivery to the same or 
other targets receiving from the node. ...
.
.
.
 undeliverable-here     prevent redelivery      optional boolean
    If the undeliverable-here is set, then any messages released MUST NOT be 
redelivered to the modifying link endpoint. 
{quote}

I understand this as follows: {{modify(undeliverableHere)}} equals to 
{{release}} with the exception that modified link is excluded from the list of 
available targets.

Ok, I got it that this feature is not supported, but it would be great to learn 
these from docs, rather than from code.

bq.  At worst, it still wouldnt do what you want since the producer would not 
have any knowledge of the action by the consumer or the messge being requeued 
for delivery only to other consumers, so again youd need to look at doing 
something like request-response based messaging, or if you really want 
end-to-end acknoweldgement, perhaps look an entirely different solution.

End-to-end confirmation is not required, of course, but there was a chance that 
I'm doing something wrong there. I've found a workaround with 
{{redeliveryPlugin}}, but it is exactly workaround because it sometimes tries 
to send message back to consumer which asks not to deliver that message.

> ActiveMQ does not respect sender and receiver link settle mode
> --------------------------------------------------------------
>
>                 Key: AMQ-6657
>                 URL: https://issues.apache.org/jira/browse/AMQ-6657
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.14.4
>            Reporter: Ilya Lebedev
>
> Here is the long story
> http://activemq.2283324.n4.nabble.com/How-to-setup-policy-for-client-side-message-acceptance-td4724961.html
> Use case
> # setup policy for
> #* sender setter mode 'unsettled'
> #* receiver settle mode 'second'
> # connect to brocker
> Expected result
> * broker respects requested policy
> Actual result
> * broker resets
> ** sender settle mode - 'settle'
> ** receiver settle mode - 'first'
> Log
> {code}
>   amqp10:framing sending frame:  @attach(18) 
> [name='test_d5c61642-99b0-4315-bef5-7bffdf0f8d64' handle=0 role=false 
> senderSettleMode=0 receiverSettleMode=1 source=@source(40) 
> [address='localhost' durable=0 expiryPolicy='session-end' timeout=0 
> dynamic=false dynamicNodeProperties={} distributionMode=null filter={} 
> defaultOutcome=null outcomes=null capabilities=null] target=@target(41) 
> [address='test' durable=0 expiryPolicy='session-end' timeout=0 dynamic=false 
> dynamicNodeProperties={} capabilities=null] unsettled={} 
> incompleteUnsettled=false initialDeliveryCount=1 maxMessageSize=0 
> offeredCapabilities=null desiredCapabilities=null properties={}] +1ms
>   amqp10:trace raw: 
> [0000009602000001005312c0890ea129746573745f64356336313634322d393962302d343331352d626566352d376266666466306638643634434250005001005328c0260ba1096c6f63616c686f737443a30b73657373696f6e2d656e644342c1010040c10100404040005329c01b07a1047465737443a30b73657373696f6e2d656e644342c1010040c10100425201444040c10100]
>  +0ms
>   amqp10:connection Rx: 
> 0000008602000000005312c07907a129746573745f64356336313634322d393962302d343331352d626566352d376266666466306638643634434150025000005328c02308a1096c6f63616c686f737443a30b73657373696f6e2d656e644342c1010040c10100005329c01a06a1047465737443a30b73657373696f6e2d656e644342c101000000002402000000005313c017075201707fffffff5201707fffffff43520170000003e8
>  +1ms
>   amqp10:framing received frame:  @attach(18) 
> [name='test_d5c61642-99b0-4315-bef5-7bffdf0f8d64' handle=0 role=true 
> senderSettleMode=2 receiverSettleMode=0 source=@source(40) 
> [address='localhost' durable=0 expiryPolicy='session-end' timeout=0 
> dynamic=false dynamicNodeProperties={} distributionMode=null filter={} 
> defaultOutcome=null outcomes=null capabilities=null] target=@target(41) 
> [address='test' durable=0 expiryPolicy='session-end' timeout=0 dynamic=false 
> dynamicNodeProperties={} capabilities=null] unsettled={} 
> incompleteUnsettled=false initialDeliveryCount=null maxMessageSize=0 
> offeredCapabilities=null desiredCapabilities=null properties={}] +2ms 
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to