[
https://issues.apache.org/jira/browse/AMQ-6657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15974678#comment-15974678
]
Timothy Bish commented on AMQ-6657:
-----------------------------------
{quote}
This is exactly the problem I talk about, I need to be sure that the message
has been processed, not only enqueued.
{quote}
The broker doesn't inform you of message processing, nor should it. The nature
of a decoupled message broker is that you queue a message and at some point
later in time some other process dequeues it. If you need to know that the
message was processed than the standard practice of request / response would be
an option.
{quote}
This is exactly what I need. Product evolution plan defines experimental
features to be turned on for a certain period of time and if experimental
consumer prefers not to process message, it returns latter one to a queue
marked 'undeliverableHere' to prevent re-delivery to itself; 'release' is not
an option here because ActiveMQ immediately returns message back to consumer.
{quote}
There are some limitations to what the broker can do based on the legacy nature
of it being primarily a JMS broker. For messages that are tagged as
undeliverable here, the only option it has is to send them off to the DLQ as
the broker has no mechanism do directly release a message back to the queue.
You can work around this using broker configuration for [Broker
Redelivery|http://activemq.apache.org/message-redelivery-and-dlq-handling.html]
but that does not guarantee that the broker won't send the message back to the
same consumer if it's still connected.
> 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)