[ 
https://issues.apache.org/jira/browse/CAMEL-23032?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Weiss updated CAMEL-23032:
----------------------------------
    Description: 
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}

  was:
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 InOnly as well
        pullSubscription: false
        servers: nats:4222
        topic: "456"
      steps:         - log:             id: log-2580
            message: ${body}
        - setBody:             groovy:               expression: |
                1/0
        - to:             uri: log:logger
{code}


> 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
>            Reporter: Michael Weiss
>            Priority: Major
>
> 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)

Reply via email to