Claus Ibsen created CAMEL-26339:
-----------------------------------
Summary: camel-plc4x - the triggered consumer logs a WARN with a
stack trace on every failed poll
Key: CAMEL-26339
URL: https://issues.apache.org/jira/browse/CAMEL-26339
Project: Camel
Issue Type: Improvement
Reporter: Claus Ibsen
Fix For: 4.24.0
When the PLC cannot be reached, the triggered consumer of camel-plc4x (a
{{trigger}} on the endpoint, which polls every {{period}} ms) fails every poll.
Each failed poll goes to the consumer's exception handler, which logs a WARN
with the full stack trace ({{Failed polling endpoint: ...}}). With
{{period=100}} that is ten stack traces a second for as long as the PLC is down.
With the default {{autoReconnect=false}} each poll also logs {{Connection lost
and auto-reconnect is turned off, shutting down Plc4XEndpoint}} from
{{Plc4XEndpoint.reconnectIfNeeded()}}, and stops the endpoint again, while the
route keeps polling.
Users cannot calm this down with the scheduled poll options
({{backoffErrorThreshold}}, {{backoffMultiplier}}), because {{Plc4XEndpoint}}
is a {{DefaultEndpoint}} and does not offer them.
This was seen in the review of CAMEL-25617
(https://github.com/apache/camel/pull/28387), on a real S7-1200 and on protocol
simulators, and was left for a follow-up.
Possible directions:
* Log the first failed poll of a run of failures at WARN with the stack trace,
the following ones without the stack trace or at DEBUG, and log once at INFO
when a poll succeeds again.
* With {{autoReconnect=false}}, log the shutdown once, and stop polling (or
fail the route) rather than repeating it on every poll.
* Optionally offer the backoff options of a scheduled poll consumer on the
endpoint.
The other consumers and the producer share {{reconnectIfNeeded()}}, so they are
worth a look too.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)