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

Work on CAMEL-26781 started by Claus Ibsen.
-------------------------------------------
> camel-core - Runtime endpoint registry may count the reply of an InOut 
> consumer more than once behind a circuit breaker or with sub-exchanges
> ---------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26781
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26781
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 4.24.0
>
>
> Follow-up of CAMEL-26780 (the input hits of the runtime endpoint registry).
> For an InOut consumer, the runtime endpoint registry (extended statistics 
> mode) counts the reply as an "out" hit of the consumer's endpoint on 
> ExchangeCompletedEvent / ExchangeFailedEvent, keyed by the exchange's from 
> route and from endpoint (DefaultRuntimeEndpointRegistry#notify).
> Those events also fire for exchanges that are no reply of the consumer, as 
> ExchangeCreatedEvent did for the inputs:
> * A circuit breaker (resilience4j; fault tolerance likely the same) runs a 
> correlated copy with its own unit of work and completes it with 
> UnitOfWorkHelper.doneUow(uow, copy), which fires ExchangeCompletedEvent (or 
> ExchangeFailedEvent) for the copy. The copy keeps the pattern, from route and 
> from endpoint, so an InOut route with a circuit breaker likely counts two 
> replies per message.
> * Split, Multicast and Recipient List sub-exchanges with their own unit of 
> work are likely counted as replies too.
> This is from reading the code, not yet reproduced with a test.
> A fix could count the reply where CAMEL-26780 counts the input: when the 
> exchange is done in the route it entered through its consumer 
> (RoutePolicy.onExchangeDone of the same route policy), for an out-capable 
> exchange. Tests like ManagedEndpointInputHitsTest / ResilienceInputHitsTest 
> with an InOut consumer (e.g. a seda InOut or platform-http route) would show 
> it.
> _Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to