gnodet commented on PR #23346:
URL: https://github.com/apache/camel/pull/23346#issuecomment-4515307910
```
~/tmp/camel-example camel ask
✔ took 24m
22s
[jbang] [WARN] Detected missing or out-of-date dependencies in cache.
[jbang] Resolving dependencies...
[jbang] org.apache.camel:camel-jbang-main:4.21.0-SNAPSHOT
[jbang] org.apache.camel:camel-jbang-core:4.21.0-SNAPSHOT
[jbang] Dependencies resolved
WARNING: A restricted method in java.lang.foreign.MemorySegment has been
called
WARNING: java.lang.foreign.MemorySegment::reinterpret has been called by
org.jline.terminal.impl.ffm.FfmTerminalProvider in an unnamed module
(file:/Users/gnodet/.m2/repository/org/jline/jline/4.0.15/jline-4.0.15.jar)
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for
callers in this module
WARNING: Restricted methods will be blocked in a future release unless
native access is enabled
Camel AI Assistant (claude-sonnet-4-6, anthropic)
Target: random-numbers.camel.yaml (PID 28879)
Type your question, or 'exit' to quit.
ask> what routes are running?
There is 1 route currently running:
Route ID: random-numbers
State: Started
Uptime: 8h57m
From: timer://random?period=5000 (fires every 5 seconds)
Throughput: 1.00 msg/sec
Total Exchanges: 6,447
Failed: 5,447 <-- WARNING: very high failure rate (~84%)
In-flight: 0
Processors:
setBody1 - generates a random number (1-1000) -- 0 failures
log1 - logs the generated number -- 0 failures
to1 - sends to seda:numbers -- 5,447 failures <--
this is the source of all failures
The route itself is healthy in terms of generating and logging numbers, but
almost all exchanges are failing at the final step when sending to
seda:numbers. This likely means nothing is consuming from that seda:numbers
queue, causing messages to be rejected or dropped.
You may want to check if there is a missing consumer route for seda:numbers,
or inspect the endpoints for more detail. Would you like me to dig deeper into
this?
ask> no consumer means the exchange is in error? if that's the case, why we
only have 5,151 out of 6,151 exchanges ?
Good catch on the numbers — and the endpoint data helps clarify things. Let
me correct myself:
First, the numbers I quoted were slightly off because the stats updated
between my summary and the raw data. Let's use the latest snapshot:
Total exchanges fired by timer: 6,451
Exchanges failed (at to1/seda): 5,447
Exchanges completed successfully: ~1,004
So the real question is: why did ~1,004 exchanges succeed if there is no
consumer?
The answer is SEDA queue behavior. seda:numbers is an in-memory queue with a
default capacity of 1,000 slots. When the queue has space, sending to it
succeeds immediately — the producer does not need a consumer to be present.
Once the queue fills up to its 1,000-message limit, subsequent sends are
rejected and the exchange fails.
So what likely happened:
1. The route started and the first ~1,000 messages filled the seda queue
successfully.
2. Once the queue was full, all subsequent sends failed because there was no
consumer draining it.
3. The ~1,000 successes match exactly the default seda queue capacity.
To fix this you have two options:
- Add a consumer route that reads from seda:numbers.
- If seda:numbers is no longer needed, remove the "to seda:numbers" step
from the route.
Would you like help with either of those?
ask>
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]