This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 1975e38a2ccc CAMEL-25939: camel-milo - the retry of refused monitored 
items follows reconnectTimeout in its docs and tests (#28254)
1975e38a2ccc is described below

commit 1975e38a2ccc2ec85a529fc62d06c632af6cb034
Author: Serdar Gökay <[email protected]>
AuthorDate: Thu Oct 22 23:48:45 2026 +0300

    CAMEL-25939: camel-milo - the retry of refused monitored items follows 
reconnectTimeout in its docs and tests (#28254)
    
    Co-authored-by: Claude Opus 5.5 <[email protected]>
---
 .../camel/catalog/components/milo-browse.json      |  4 +--
 .../camel/catalog/components/milo-client.json      |  4 +--
 .../camel/catalog/docs/milo-client-component.adoc  | 10 ++++----
 .../camel/component/milo/browse/milo-browse.json   |  4 +--
 .../camel/component/milo/client/milo-client.json   |  4 +--
 .../src/main/docs/milo-client-component.adoc       | 10 ++++----
 .../component/milo/client/MiloClientComponent.java |  3 ++-
 .../milo/client/MiloClientConfiguration.java       |  5 ++--
 .../component/milo/CommunicationLossTest.java      | 24 +++++++++--------
 .../component/milo/MonitoredItemRetryTest.java     | 20 ++++++++-------
 .../ROOT/pages/camel-4x-upgrade-guide-4_24.adoc    | 19 ++++++++------
 .../dsl/MiloBrowseComponentBuilderFactory.java     |  5 ++--
 .../dsl/MiloClientComponentBuilderFactory.java     |  5 ++--
 .../dsl/MiloBrowseEndpointBuilderFactory.java      | 10 +++++---
 .../dsl/MiloClientEndpointBuilderFactory.java      | 30 +++++++++++++---------
 15 files changed, 88 insertions(+), 69 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-browse.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-browse.json
index 3978dcb93935..cf30f028dc51 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-browse.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-browse.json
@@ -45,7 +45,7 @@
     "overrideHost": { "index": 18, "kind": "property", "displayName": 
"Override Host", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint host with the host from the endpoint URI." },
     "overridePort": { "index": 19, "kind": "property", "displayName": 
"Override Port", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint port with the port from the endpoint URI." },
     "productUri": { "index": 20, "kind": "property", "displayName": "Product 
Uri", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The product URI" },
-    "reconnectTimeout": { "index": 21, "kind": "property", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the ser [...]
+    "reconnectTimeout": { "index": 21, "kind": "property", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the ser [...]
     "requestedPublishingInterval": { "index": 22, "kind": "property", 
"displayName": "Requested Publishing Interval", "group": "client", "label": 
"client", "required": false, "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"1_000.0", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The requested publishing 
interval in mi [...]
     "requestTimeout": { "index": 23, "kind": "property", "displayName": 
"Request Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "java.lang.Long", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Request timeout in 
milliseconds" },
     "sessionName": { "index": 24, "kind": "property", "displayName": "Session 
Name", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Session name" },
@@ -87,7 +87,7 @@
     "overrideHost": { "index": 24, "kind": "parameter", "displayName": 
"Override Host", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint host with the host from the endpoint URI." },
     "overridePort": { "index": 25, "kind": "parameter", "displayName": 
"Override Port", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint port with the port from the endpoint URI." },
     "productUri": { "index": 26, "kind": "parameter", "displayName": "Product 
Uri", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The product URI" },
-    "reconnectTimeout": { "index": 27, "kind": "parameter", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the se [...]
+    "reconnectTimeout": { "index": 27, "kind": "parameter", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the se [...]
     "requestedPublishingInterval": { "index": 28, "kind": "parameter", 
"displayName": "Requested Publishing Interval", "group": "client", "label": 
"client", "required": false, "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"1_000.0", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The requested publishing 
interval in m [...]
     "requestTimeout": { "index": 29, "kind": "parameter", "displayName": 
"Request Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "java.lang.Long", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Request timeout in 
milliseconds" },
     "sessionName": { "index": 30, "kind": "parameter", "displayName": "Session 
Name", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Session name" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-client.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-client.json
index a8d6bb84cf4a..a4ecb41eb45e 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-client.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-client.json
@@ -46,7 +46,7 @@
     "overrideHost": { "index": 19, "kind": "property", "displayName": 
"Override Host", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint host with the host from the endpoint URI." },
     "overridePort": { "index": 20, "kind": "property", "displayName": 
"Override Port", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint port with the port from the endpoint URI." },
     "productUri": { "index": 21, "kind": "property", "displayName": "Product 
Uri", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The product URI" },
-    "reconnectTimeout": { "index": 22, "kind": "property", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the ser [...]
+    "reconnectTimeout": { "index": 22, "kind": "property", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the ser [...]
     "requestedPublishingInterval": { "index": 23, "kind": "property", 
"displayName": "Requested Publishing Interval", "group": "client", "label": 
"client", "required": false, "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"1_000.0", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The requested publishing 
interval in mi [...]
     "requestTimeout": { "index": 24, "kind": "property", "displayName": 
"Request Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "java.lang.Long", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Request timeout in 
milliseconds" },
     "sessionName": { "index": 25, "kind": "property", "displayName": "Session 
Name", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Session name" },
@@ -96,7 +96,7 @@
     "overrideHost": { "index": 30, "kind": "parameter", "displayName": 
"Override Host", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint host with the host from the endpoint URI." },
     "overridePort": { "index": 31, "kind": "parameter", "displayName": 
"Override Port", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint port with the port from the endpoint URI." },
     "productUri": { "index": 32, "kind": "parameter", "displayName": "Product 
Uri", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The product URI" },
-    "reconnectTimeout": { "index": 33, "kind": "parameter", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the se [...]
+    "reconnectTimeout": { "index": 33, "kind": "parameter", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the se [...]
     "requestedPublishingInterval": { "index": 34, "kind": "parameter", 
"displayName": "Requested Publishing Interval", "group": "client", "label": 
"client", "required": false, "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"1_000.0", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The requested publishing 
interval in m [...]
     "requestTimeout": { "index": 35, "kind": "parameter", "displayName": 
"Request Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "java.lang.Long", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Request timeout in 
milliseconds" },
     "sessionName": { "index": 36, "kind": "parameter", "displayName": "Session 
Name", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Session name" },
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/milo-client-component.adoc
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/milo-client-component.adoc
index 2620d3733dc2..9164dfc23803 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/milo-client-component.adoc
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/milo-client-component.adoc
@@ -192,11 +192,11 @@ monitor filter (`monitorFilterType`, 
`dataChangeFilter*`). Tags that need a diff
 need a consumer of their own.
 
 A node that does not exist on the server does not affect the other nodes. A 
node that cannot be monitored is
-reported once with its status code, and Camel tries to create its monitored 
item again every 10 seconds while the
-connection lasts, for all such nodes of the connection in one request. A 
failed attempt delivers nothing; once the item
-is created, the node delivers its current value as its first value. This 
covers a node that is added to the server
-later, for example with a new PLC program, and a server that refused the item 
because it had too many. A rebuilt
-connection creates the monitored items of all nodes again, and a stopped 
consumer is not retried.
+reported once with its status code, and Camel tries to create its monitored 
item again every `reconnectTimeout` (10
+seconds by default) while the connection lasts, for all such nodes of the 
connection in one request. A failed attempt
+delivers nothing; once the item is created, the node delivers its current 
value as its first value. This covers a node
+that is added to the server later, for example with a new PLC program, and a 
server that refused the item because it had
+too many. A rebuilt connection creates the monitored items of all nodes again, 
and a stopped consumer is not retried.
 A node whose namespace URI (`nsu=`) is not in the namespace table of the 
server is reported and retried in the same
 way, so a namespace that the server adds later is found.
 The consumer delivers one exchange with the bad status code for such a node, 
and the `CamelMiloNodeId` header names it.
diff --git 
a/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/browse/milo-browse.json
 
b/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/browse/milo-browse.json
index 3978dcb93935..cf30f028dc51 100644
--- 
a/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/browse/milo-browse.json
+++ 
b/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/browse/milo-browse.json
@@ -45,7 +45,7 @@
     "overrideHost": { "index": 18, "kind": "property", "displayName": 
"Override Host", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint host with the host from the endpoint URI." },
     "overridePort": { "index": 19, "kind": "property", "displayName": 
"Override Port", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint port with the port from the endpoint URI." },
     "productUri": { "index": 20, "kind": "property", "displayName": "Product 
Uri", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The product URI" },
-    "reconnectTimeout": { "index": 21, "kind": "property", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the ser [...]
+    "reconnectTimeout": { "index": 21, "kind": "property", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the ser [...]
     "requestedPublishingInterval": { "index": 22, "kind": "property", 
"displayName": "Requested Publishing Interval", "group": "client", "label": 
"client", "required": false, "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"1_000.0", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The requested publishing 
interval in mi [...]
     "requestTimeout": { "index": 23, "kind": "property", "displayName": 
"Request Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "java.lang.Long", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Request timeout in 
milliseconds" },
     "sessionName": { "index": 24, "kind": "property", "displayName": "Session 
Name", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Session name" },
@@ -87,7 +87,7 @@
     "overrideHost": { "index": 24, "kind": "parameter", "displayName": 
"Override Host", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint host with the host from the endpoint URI." },
     "overridePort": { "index": 25, "kind": "parameter", "displayName": 
"Override Port", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint port with the port from the endpoint URI." },
     "productUri": { "index": 26, "kind": "parameter", "displayName": "Product 
Uri", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The product URI" },
-    "reconnectTimeout": { "index": 27, "kind": "parameter", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the se [...]
+    "reconnectTimeout": { "index": 27, "kind": "parameter", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the se [...]
     "requestedPublishingInterval": { "index": 28, "kind": "parameter", 
"displayName": "Requested Publishing Interval", "group": "client", "label": 
"client", "required": false, "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"1_000.0", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The requested publishing 
interval in m [...]
     "requestTimeout": { "index": 29, "kind": "parameter", "displayName": 
"Request Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "java.lang.Long", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Request timeout in 
milliseconds" },
     "sessionName": { "index": 30, "kind": "parameter", "displayName": "Session 
Name", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Session name" },
diff --git 
a/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/client/milo-client.json
 
b/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/client/milo-client.json
index a8d6bb84cf4a..a4ecb41eb45e 100644
--- 
a/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/client/milo-client.json
+++ 
b/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/client/milo-client.json
@@ -46,7 +46,7 @@
     "overrideHost": { "index": 19, "kind": "property", "displayName": 
"Override Host", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint host with the host from the endpoint URI." },
     "overridePort": { "index": 20, "kind": "property", "displayName": 
"Override Port", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint port with the port from the endpoint URI." },
     "productUri": { "index": 21, "kind": "property", "displayName": "Product 
Uri", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The product URI" },
-    "reconnectTimeout": { "index": 22, "kind": "property", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the ser [...]
+    "reconnectTimeout": { "index": 22, "kind": "property", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the ser [...]
     "requestedPublishingInterval": { "index": 23, "kind": "property", 
"displayName": "Requested Publishing Interval", "group": "client", "label": 
"client", "required": false, "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"1_000.0", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The requested publishing 
interval in mi [...]
     "requestTimeout": { "index": 24, "kind": "property", "displayName": 
"Request Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "java.lang.Long", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Request timeout in 
milliseconds" },
     "sessionName": { "index": 25, "kind": "property", "displayName": "Session 
Name", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Session name" },
@@ -96,7 +96,7 @@
     "overrideHost": { "index": 30, "kind": "parameter", "displayName": 
"Override Host", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint host with the host from the endpoint URI." },
     "overridePort": { "index": 31, "kind": "parameter", "displayName": 
"Override Port", "group": "client", "label": "client", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Override the server 
reported endpoint port with the port from the endpoint URI." },
     "productUri": { "index": 32, "kind": "parameter", "displayName": "Product 
Uri", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The product URI" },
-    "reconnectTimeout": { "index": 33, "kind": "parameter", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the se [...]
+    "reconnectTimeout": { "index": 33, "kind": "parameter", "displayName": 
"Reconnect Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10000, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The delay in 
milliseconds before the client tries again to connect to the se [...]
     "requestedPublishingInterval": { "index": 34, "kind": "parameter", 
"displayName": "Requested Publishing Interval", "group": "client", "label": 
"client", "required": false, "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"1_000.0", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The requested publishing 
interval in m [...]
     "requestTimeout": { "index": 35, "kind": "parameter", "displayName": 
"Request Timeout", "group": "client", "label": "client", "required": false, 
"type": "integer", "javaType": "java.lang.Long", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Request timeout in 
milliseconds" },
     "sessionName": { "index": 36, "kind": "parameter", "displayName": "Session 
Name", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "Session name" },
diff --git a/components/camel-milo/src/main/docs/milo-client-component.adoc 
b/components/camel-milo/src/main/docs/milo-client-component.adoc
index 2620d3733dc2..9164dfc23803 100644
--- a/components/camel-milo/src/main/docs/milo-client-component.adoc
+++ b/components/camel-milo/src/main/docs/milo-client-component.adoc
@@ -192,11 +192,11 @@ monitor filter (`monitorFilterType`, 
`dataChangeFilter*`). Tags that need a diff
 need a consumer of their own.
 
 A node that does not exist on the server does not affect the other nodes. A 
node that cannot be monitored is
-reported once with its status code, and Camel tries to create its monitored 
item again every 10 seconds while the
-connection lasts, for all such nodes of the connection in one request. A 
failed attempt delivers nothing; once the item
-is created, the node delivers its current value as its first value. This 
covers a node that is added to the server
-later, for example with a new PLC program, and a server that refused the item 
because it had too many. A rebuilt
-connection creates the monitored items of all nodes again, and a stopped 
consumer is not retried.
+reported once with its status code, and Camel tries to create its monitored 
item again every `reconnectTimeout` (10
+seconds by default) while the connection lasts, for all such nodes of the 
connection in one request. A failed attempt
+delivers nothing; once the item is created, the node delivers its current 
value as its first value. This covers a node
+that is added to the server later, for example with a new PLC program, and a 
server that refused the item because it had
+too many. A rebuilt connection creates the monitored items of all nodes again, 
and a stopped consumer is not retried.
 A node whose namespace URI (`nsu=`) is not in the namespace table of the 
server is reported and retried in the same
 way, so a namespace that the server adds later is found.
 The consumer delivers one exchange with the bad status code for such a node, 
and the `CamelMiloNodeId` header names it.
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientComponent.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientComponent.java
index 952ed9b5627a..883c17a3b4cd 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientComponent.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientComponent.java
@@ -80,7 +80,8 @@ public class MiloClientComponent extends DefaultComponent {
     }
 
     /**
-     * Default delay in milliseconds between two attempts to connect to the 
server
+     * Default delay in milliseconds between two attempts to connect to the 
server, and between two attempts to create
+     * the monitored items that the server refused
      */
     public void setReconnectTimeout(final Long reconnectTimeout) {
         this.configuration.setReconnectTimeout(reconnectTimeout);
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConfiguration.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConfiguration.java
index 4d6914000b89..e9f8c1e309f3 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConfiguration.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConfiguration.java
@@ -255,8 +255,9 @@ public class MiloClientConfiguration implements Cloneable {
     }
 
     /**
-     * The delay in milliseconds before the client tries again to connect to 
the server after an attempt failed. It is
-     * not used while the OPC UA client recovers a lost session on its own.
+     * The delay in milliseconds before the client tries again to connect to 
the server after an attempt failed, and
+     * between two attempts to create the monitored items that the server 
refused. Neither attempt is made while the OPC
+     * UA client recovers a lost session on its own.
      */
     public void setReconnectTimeout(final long reconnectTimeout) {
         if (reconnectTimeout <= 0) {
diff --git 
a/components/camel-milo/src/test/java/org/apache/camel/component/milo/CommunicationLossTest.java
 
b/components/camel-milo/src/test/java/org/apache/camel/component/milo/CommunicationLossTest.java
index 0fda3a88b4f8..d311681e54e5 100644
--- 
a/components/camel-milo/src/test/java/org/apache/camel/component/milo/CommunicationLossTest.java
+++ 
b/components/camel-milo/src/test/java/org/apache/camel/component/milo/CommunicationLossTest.java
@@ -113,12 +113,10 @@ public class CommunicationLossTest extends 
AbstractMiloServerTest {
                 from(DIRECT_START_1).to(MILO_SERVER_ITEM_1);
 
                 // the consumers deliver the current values while they start, 
so the tests start these routes
-                from(resolve(MILO_CLIENT_ITEM_1).replace("@@relay@@", 
Integer.toString(relayPort.getPort())))
-                        .routeId("item1").autoStartup(false).to(MOCK_ITEM_1);
+                
from(throughRelay(MILO_CLIENT_ITEM_1)).routeId("item1").autoStartup(false).to(MOCK_ITEM_1);
 
                 // a node the server refuses, on the same connection
-                from(resolve(MILO_CLIENT_UNKNOWN).replace("@@relay@@", 
Integer.toString(relayPort.getPort())))
-                        
.routeId("unknown").autoStartup(false).to(MOCK_UNKNOWN);
+                
from(throughRelay(MILO_CLIENT_UNKNOWN)).routeId("unknown").autoStartup(false).to(MOCK_UNKNOWN);
 
                 // its own relay, so its own connection, which the test starts 
while the relay is down
                 from(resolve(MILO_CLIENT_ITEM_1).replace("@@relay@@", 
Integer.toString(lateRelayPort.getPort())))
@@ -132,6 +130,14 @@ public class CommunicationLossTest extends 
AbstractMiloServerTest {
         };
     }
 
+    /**
+     * The URI of a consumer that reaches the server through the relay. These 
consumers share one connection, which
+     * creates the refused node again every second.
+     */
+    private String throughRelay(final String uri) {
+        return resolve(uri).replace("@@relay@@", 
Integer.toString(relayPort.getPort())) + "&reconnectTimeout=1000";
+    }
+
     @Override
     protected void doPostSetup() throws Exception {
         relay.start(relayPort.getPort(), getServerPort());
@@ -164,9 +170,7 @@ public class CommunicationLossTest extends 
AbstractMiloServerTest {
         unknownEndpoint.expectedMessageCount(0);
         unknownEndpoint.setSleepForEmptyTest(500);
 
-        final MiloClientEndpoint endpoint = context.getEndpoint(
-                resolve(MILO_CLIENT_ITEM_1).replace("@@relay@@", 
Integer.toString(relayPort.getPort())),
-                MiloClientEndpoint.class);
+        final MiloClientEndpoint endpoint = 
context.getEndpoint(throughRelay(MILO_CLIENT_ITEM_1), MiloClientEndpoint.class);
         final MiloClientConnection connection = endpoint.createConnection();
         try {
             final OpcUaClient client = connection.getOpcUaClient();
@@ -229,9 +233,7 @@ public class CommunicationLossTest extends 
AbstractMiloServerTest {
         context.getRouteController().startRoute("unknown");
         unknownEndpoint.assertIsSatisfied();
 
-        final MiloClientEndpoint endpoint = context.getEndpoint(
-                resolve(MILO_CLIENT_ITEM_1).replace("@@relay@@", 
Integer.toString(relayPort.getPort())),
-                MiloClientEndpoint.class);
+        final MiloClientEndpoint endpoint = 
context.getEndpoint(throughRelay(MILO_CLIENT_ITEM_1), MiloClientEndpoint.class);
         final MiloClientConnection connection = endpoint.createConnection();
         try {
             final OpcUaClient client = connection.getOpcUaClient();
@@ -253,7 +255,7 @@ public class CommunicationLossTest extends 
AbstractMiloServerTest {
             // the server stays unreachable for longer than the retry interval 
of the refused node
             relay.stop();
             await().atMost(10, TimeUnit.SECONDS).until(() -> 
item1Endpoint.getReceivedCounter() >= 1);
-            await().during(12, TimeUnit.SECONDS).atMost(15, TimeUnit.SECONDS)
+            await().during(3, TimeUnit.SECONDS).atMost(5, TimeUnit.SECONDS)
                     .until(() -> unknownEndpoint.getReceivedCounter() == 0);
             // an attempt while the session is lost is skipped: it does not 
hold the connection until the session is back
             assertSame(client, 
CompletableFuture.supplyAsync(connection::getOpcUaClient).get(2, 
TimeUnit.SECONDS));
diff --git 
a/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitoredItemRetryTest.java
 
b/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitoredItemRetryTest.java
index 468d4b918042..a9fa8af816c3 100644
--- 
a/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitoredItemRetryTest.java
+++ 
b/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitoredItemRetryTest.java
@@ -43,8 +43,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertSame;
 
 /**
- * A node that the server refuses to monitor is reported once and created 
again on the same connection, every 10
- * seconds, until the server has it or its consumer stops
+ * A node that the server refuses to monitor is reported once and created 
again on the same connection, every
+ * {@code reconnectTimeout} milliseconds, until the server has it or its 
consumer stops
  */
 public class MonitoredItemRetryTest extends AbstractMiloServerTest {
 
@@ -55,10 +55,12 @@ public class MonitoredItemRetryTest extends 
AbstractMiloServerTest {
     // a namespace that the server does not have until a test adds it
     private static final String LATE_NAMESPACE_URI = 
"urn:org:apache:camel:late";
 
-    // the client endpoints only differ in their nodes, so they share one 
connection
+    // the client endpoints only differ in their nodes, so they share one 
connection, which creates the refused nodes
+    // again every second
     private static final String MILO_CLIENT_BASE = 
"milo-client:opc.tcp://foo:bar@localhost:@@port@@"
                                                    + 
"?allowedSecurityPolicies=None&overrideHost=true"
-                                                   + 
"&samplingInterval=50&requestedPublishingInterval=100";
+                                                   + 
"&samplingInterval=50&requestedPublishingInterval=100"
+                                                   + "&reconnectTimeout=1000";
 
     private static final String MILO_CLIENT = MILO_CLIENT_BASE + "&node=";
 
@@ -138,7 +140,7 @@ public class MonitoredItemRetryTest extends 
AbstractMiloServerTest {
             // the node is created on the server: its first value follows the 
refusal, without another bad status
             lateItemEndpoint.reset();
             lateItemEndpoint.expectedMessageCount(1);
-            lateItemEndpoint.setResultWaitTime(30_000);
+            lateItemEndpoint.setResultWaitTime(10_000);
             lateItemEndpoint.setAssertPeriod(2_000);
             testBody(lateItemEndpoint.message(0), assertGoodValue("Foo"));
             template.sendBody("milo-server:lateItem", "Foo");
@@ -169,7 +171,7 @@ public class MonitoredItemRetryTest extends 
AbstractMiloServerTest {
 
             lateNamespaceItemEndpoint.reset();
             lateNamespaceItemEndpoint.expectedMessageCount(1);
-            lateNamespaceItemEndpoint.setResultWaitTime(30_000);
+            lateNamespaceItemEndpoint.setResultWaitTime(10_000);
             lateNamespaceItemEndpoint.setAssertPeriod(2_000);
             testBody(lateNamespaceItemEndpoint.message(0), 
assertGoodValue("Foo"));
             namespace.startup();
@@ -208,8 +210,8 @@ public class MonitoredItemRetryTest extends 
AbstractMiloServerTest {
             stoppedItemEndpoint.expectedMessageCount(0);
             template.sendBody("milo-server:stoppedItem", "Foo");
 
-            // the next attempt would have created it by now
-            await().during(15, TimeUnit.SECONDS).atMost(20, TimeUnit.SECONDS)
+            // the next attempts would have created it by now
+            await().during(3, TimeUnit.SECONDS).atMost(5, TimeUnit.SECONDS)
                     .until(() -> 
client.getSubscriptions().get(0).getMonitoredItems().stream()
                             .noneMatch(item -> "stoppedItem"
                                     
.equals(item.getReadValueId().getNodeId().getIdentifier())));
@@ -254,7 +256,7 @@ public class MonitoredItemRetryTest extends 
AbstractMiloServerTest {
     private void holdRefusalOfMissingNode(final Exchange exchange) throws 
InterruptedException {
         if 
(MISSING_NODE.equals(exchange.getMessage().getHeader(MiloConstants.HEADER_NODE_ID)))
 {
             template.sendBody("milo-server:overtakenItem", "Foo");
-            overtakenCreated.await(30, TimeUnit.SECONDS);
+            overtakenCreated.await(10, TimeUnit.SECONDS);
         } else if 
(exchange.getMessage().getBody(DataValue.class).getStatusCode().isGood()) {
             overtakenCreated.countDown();
         }
diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_24.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_24.adoc
index 58d674bd440e..72132ccb57ed 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_24.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_24.adoc
@@ -1262,10 +1262,11 @@ the CA (an empty one is enough) to `trusted/crl` or 
`issuer/crl`. A custom valid
 
 With neither option, the client does not connect to such an endpoint. It logs 
a `WARN` message
 `Failed to connect: The certificate of the OPC UA server cannot be validated`, 
followed by the endpoint and its
-security policy, and tries again every 10 seconds. A producer fails with 
`IllegalStateException: No connected`, caused
-by the same message. A server certificate refused by the trust list or by a 
`certificateValidator` is logged at `WARN`
-as `Failed to connect, because a certificate or security check failed`. To 
restore the previous behaviour, set the new
-`trustAllCertificates` option to `true`. This is insecure: the client then 
does not authenticate the server.
+security policy, and tries again after `reconnectTimeout` (10 seconds by 
default). A producer fails with
+`IllegalStateException: No connected`, caused by the same message. A server 
certificate refused by the trust list or by
+a `certificateValidator` is logged at `WARN` as `Failed to connect, because a 
certificate or security check failed`. To
+restore the previous behaviour, set the new `trustAllCertificates` option to 
`true`. This is insecure: the client then
+does not authenticate the server.
 
 The certificate that the user name and password are encrypted with is checked 
by the same validator. Endpoints that
 use the security policy `None` are not affected.
@@ -2237,9 +2238,9 @@ Bad status of a failed sensor.
 
 Since 4.16, a `milo-client` consumer whose monitored item could not be 
created, for example because the node does not
 exist, received nothing. Now it receives one `DataValue` with the bad status 
code. The
-monitored item is then created again every 10 seconds on the same connection, 
without delivering anything for a failed
-attempt, until the server accepts it; its first value is the current value of 
the node. A route restart or a
-connection that Camel rebuilds creates it again too.
+monitored item is then created again every `reconnectTimeout` (10 seconds by 
default) on the same connection, without
+delivering anything for a failed attempt, until the server accepts it; its 
first value is the current value of the node.
+A route restart or a connection that Camel rebuilds creates it again too.
 
 A node ID with a namespace URI (`nsu=`) that is not in the namespace table of 
the server no longer takes the whole
 client connection down, including the consumers of other nodes. Its consumer 
receives one `DataValue` with
@@ -2292,7 +2293,9 @@ node, and the current values delivered after an outage 
still arrive.
 `setReconnectTimeout` on the `milo-client` and `milo-browse` components set 
the request timeout of every service call,
 and the delay between two connection attempts stayed 10 seconds. It now sets 
that delay, which the new
 `reconnectTimeout` option of both endpoints and components sets too; its 
default of 10000 milliseconds is the previous
-delay, and a value of 0 or less is rejected. To set the request timeout, use 
the `requestTimeout` option instead
+delay, and a value of 0 or less is rejected. The option also sets how often 
the monitored items that the server
+refused are created again: a lower value repeats the `CreateMonitoredItems` 
request for them, for example for a node ID
+with a typo, more often while the connection lasts. To set the request 
timeout, use the `requestTimeout` option instead
 (for example `camel.component.milo-client.requestTimeout`, or 
`getConfiguration().setRequestTimeout(...)` in Java).
 
 === camel-milo - the sessionTimeout of the components reaches their endpoints
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloBrowseComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloBrowseComponentBuilderFactory.java
index a62b8f20e278..4dd135ff7289 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloBrowseComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloBrowseComponentBuilderFactory.java
@@ -403,8 +403,9 @@ public interface MiloBrowseComponentBuilderFactory {
         
         /**
          * The delay in milliseconds before the client tries again to connect 
to
-         * the server after an attempt failed. It is not used while the OPC UA
-         * client recovers a lost session on its own.
+         * the server after an attempt failed, and between two attempts to
+         * create the monitored items that the server refused. Neither attempt
+         * is made while the OPC UA client recovers a lost session on its own.
          * 
          * The option is a: &lt;code&gt;long&lt;/code&gt; type.
          * 
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloClientComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloClientComponentBuilderFactory.java
index 93bc2728c8bc..f3335268ecb8 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloClientComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloClientComponentBuilderFactory.java
@@ -431,8 +431,9 @@ public interface MiloClientComponentBuilderFactory {
         
         /**
          * The delay in milliseconds before the client tries again to connect 
to
-         * the server after an attempt failed. It is not used while the OPC UA
-         * client recovers a lost session on its own.
+         * the server after an attempt failed, and between two attempts to
+         * create the monitored items that the server refused. Neither attempt
+         * is made while the OPC UA client recovers a lost session on its own.
          * 
          * The option is a: &lt;code&gt;long&lt;/code&gt; type.
          * 
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloBrowseEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloBrowseEndpointBuilderFactory.java
index 0a70112a1778..78abfecdc6ba 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloBrowseEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloBrowseEndpointBuilderFactory.java
@@ -587,8 +587,9 @@ public interface MiloBrowseEndpointBuilderFactory {
         }
         /**
          * The delay in milliseconds before the client tries again to connect 
to
-         * the server after an attempt failed. It is not used while the OPC UA
-         * client recovers a lost session on its own.
+         * the server after an attempt failed, and between two attempts to
+         * create the monitored items that the server refused. Neither attempt
+         * is made while the OPC UA client recovers a lost session on its own.
          * 
          * The option is a: <code>long</code> type.
          * 
@@ -604,8 +605,9 @@ public interface MiloBrowseEndpointBuilderFactory {
         }
         /**
          * The delay in milliseconds before the client tries again to connect 
to
-         * the server after an attempt failed. It is not used while the OPC UA
-         * client recovers a lost session on its own.
+         * the server after an attempt failed, and between two attempts to
+         * create the monitored items that the server refused. Neither attempt
+         * is made while the OPC UA client recovers a lost session on its own.
          * 
          * The option will be converted to a <code>long</code> type.
          * 
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloClientEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloClientEndpointBuilderFactory.java
index 87b75cfe4fc6..3d5c8123525c 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloClientEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloClientEndpointBuilderFactory.java
@@ -658,8 +658,9 @@ public interface MiloClientEndpointBuilderFactory {
         }
         /**
          * The delay in milliseconds before the client tries again to connect 
to
-         * the server after an attempt failed. It is not used while the OPC UA
-         * client recovers a lost session on its own.
+         * the server after an attempt failed, and between two attempts to
+         * create the monitored items that the server refused. Neither attempt
+         * is made while the OPC UA client recovers a lost session on its own.
          * 
          * The option is a: <code>long</code> type.
          * 
@@ -675,8 +676,9 @@ public interface MiloClientEndpointBuilderFactory {
         }
         /**
          * The delay in milliseconds before the client tries again to connect 
to
-         * the server after an attempt failed. It is not used while the OPC UA
-         * client recovers a lost session on its own.
+         * the server after an attempt failed, and between two attempts to
+         * create the monitored items that the server refused. Neither attempt
+         * is made while the OPC UA client recovers a lost session on its own.
          * 
          * The option will be converted to a <code>long</code> type.
          * 
@@ -1658,8 +1660,9 @@ public interface MiloClientEndpointBuilderFactory {
         }
         /**
          * The delay in milliseconds before the client tries again to connect 
to
-         * the server after an attempt failed. It is not used while the OPC UA
-         * client recovers a lost session on its own.
+         * the server after an attempt failed, and between two attempts to
+         * create the monitored items that the server refused. Neither attempt
+         * is made while the OPC UA client recovers a lost session on its own.
          * 
          * The option is a: <code>long</code> type.
          * 
@@ -1675,8 +1678,9 @@ public interface MiloClientEndpointBuilderFactory {
         }
         /**
          * The delay in milliseconds before the client tries again to connect 
to
-         * the server after an attempt failed. It is not used while the OPC UA
-         * client recovers a lost session on its own.
+         * the server after an attempt failed, and between two attempts to
+         * create the monitored items that the server refused. Neither attempt
+         * is made while the OPC UA client recovers a lost session on its own.
          * 
          * The option will be converted to a <code>long</code> type.
          * 
@@ -2587,8 +2591,9 @@ public interface MiloClientEndpointBuilderFactory {
         }
         /**
          * The delay in milliseconds before the client tries again to connect 
to
-         * the server after an attempt failed. It is not used while the OPC UA
-         * client recovers a lost session on its own.
+         * the server after an attempt failed, and between two attempts to
+         * create the monitored items that the server refused. Neither attempt
+         * is made while the OPC UA client recovers a lost session on its own.
          * 
          * The option is a: <code>long</code> type.
          * 
@@ -2604,8 +2609,9 @@ public interface MiloClientEndpointBuilderFactory {
         }
         /**
          * The delay in milliseconds before the client tries again to connect 
to
-         * the server after an attempt failed. It is not used while the OPC UA
-         * client recovers a lost session on its own.
+         * the server after an attempt failed, and between two attempts to
+         * create the monitored items that the server refused. Neither attempt
+         * is made while the OPC UA client recovers a lost session on its own.
          * 
          * The option will be converted to a <code>long</code> type.
          * 

Reply via email to