Closed
Description
The sink connector does not respect the new error reporting configuration from Kafka Connect. As of Kafka 2.6, it seems, we should be using the Errant Record Reporter to ensure that failed records are put into the DLQ.
One way to verify this issue is to use an invalid JMS broker address in the CamelSinkJMSITCase test. This causes a failure in the component which, eventually, leads to a ConnectionException and lost records.
Here's a snippet taken from one of my logs as an example:
Caused by: org.apache.kafka.connect.errors.ConnectException: Exchange delivery has failed!
at org.apache.camel.kafkaconnector.CamelSinkTask.put(CamelSinkTask.java:185) ~[camel-kafka-connector-0.8.0-SNAPSHOT.jar:0.8.0-SNAPSHOT]
at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:560) ~[connect-runtime-2.6.0.jar:?]
... 10 more
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: sjms2://ckc.queue due to: javax.jms.JMSException: No Provider scheme specified.
The message is not sent to the DLQ in this case, which violates the expected behavior.