You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/11/24 15:44:11 UTC

[camel] branch camel-3.18.x updated: (chores) camel-kafka: improved the documentation for handling manual commits with camel-kafka (#8769)

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 <or...@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