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

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


The following commit(s) were added to refs/heads/camel-3.18.x by this push:
     new 9a70fea427f (chores) camel-kafka: improved the documentation for 
handling manual commits with camel-kafka (#8769)
9a70fea427f is described below

commit 9a70fea427f2d9a19034c6e1a9c7b40020cae3d9
Author: Otavio Rodolfo Piske <orpi...@users.noreply.github.com>
AuthorDate: Thu Nov 24 16:43:17 2022 +0100

    (chores) camel-kafka: improved the documentation for handling manual 
commits with camel-kafka (#8769)
---
 components/camel-kafka/src/main/docs/kafka-component.adoc | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/components/camel-kafka/src/main/docs/kafka-component.adoc 
b/components/camel-kafka/src/main/docs/kafka-component.adoc
index e6d289af58f..07f431090dd 100644
--- a/components/camel-kafka/src/main/docs/kafka-component.adoc
+++ b/components/camel-kafka/src/main/docs/kafka-component.adoc
@@ -369,13 +369,16 @@ This will force a synchronous commit which will block 
until the commit is acknow
 You can use an asynchronous commit as well by configuring the 
`KafkaManualCommitFactory` with the `DefaultKafkaManualAsyncCommitFactory` 
implementation.
 
 Then the commit will be done in the next consumer loop using the kafka 
asynchronous commit api.
-Be aware that records from a partition must be processed and committed by a 
unique thread.
-If not, this could lead with non-consistent behaviors.
-This is mostly useful with aggregation's completion timeout strategies.
 
 If you want to use a custom implementation of `KafkaManualCommit` then you can 
configure a custom `KafkaManualCommitFactory`
 on the `KafkaComponent` that creates instances of your custom implementation.
 
+*Note 1*: records from a partition must be processed and committed by the same 
thread as the consumer. This means that certain EIPs, async or concurrent 
operations
+in the DSL, may cause the commit to fail. In such circumstances, tyring to 
commit the transaction will cause the Kafka client to throw a 
`java.util.ConcurrentModificationException`
+exception with the message `KafkaConsumer is not safe for multi-threaded 
access`. To prevent this from happening, redesign your route to avoid those 
operations.
+
+*Note 2: this is mostly useful with aggregation's completion timeout 
strategies.
+
 == Pausable Consumers
 
 The Kafka component supports pausable consumers. This type of consumer can 
pause consuming data based on

Reply via email to