[
https://issues.apache.org/jira/browse/CAMEL-23032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18061210#comment-18061210
]
Claus Ibsen commented on CAMEL-23032:
-------------------------------------
Okay so now a jeystream NATS server will resend the message asap if you NACK.
But then you end up running in endless loop, so after a while the message is
position and you would need to have a policy for that, to AKC and skip it or
something.
For NACK there is with delay and some backoff so we can maybe use that. But the
problem is that it can lead to endless retries.
> camel-nats consumer sends ACK regardless of the Exchange processing/delivery
> result
> -----------------------------------------------------------------------------------
>
> Key: CAMEL-23032
> URL: https://issues.apache.org/jira/browse/CAMEL-23032
> Project: Camel
> Issue Type: Bug
> Components: camel-nats
> Affects Versions: 4.17.0, 4.18.0
> Reporter: Michael Weiss
> Priority: Minor
> Fix For: 4.18.1, 4.19.0
>
>
> h3. Expected behaviour
> NATS consumer only acknowledges message that are successfully routed to the
> producer, so they can be redelivered in case of an error. This is the
> behaviour seen on other Message Queue Consumers like RabbitMQ.
> h3. Tested behaviour
> NATS consumer acknowledges any messages, regardless of if the Exchange
> processing fails or suceeds
> h3. Impact
> Messages are lost and cannot be redelivered
> h3. Example
> Test route with a built in error. Consumer sends ACK even when the Exchange
> fails:
> {code:yaml}
> - route:
> id: route-3401
> from:
> id: from-2566
> uri: nats
> parameters:
> jetstreamEnabled: true
> jetstreamName: test
> durableName: camel
> exchangePattern: InOut # Tested with InOnly as well
> pullSubscription: false
> servers: nats:4222
> topic: "456"
> steps:
> - log:
> id: log-2580
> message: ${body}
> - setBody:
> disabled: false
> groovy:
> expression: |
> 1/0
> - to:
> uri: log:logger
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)