Hi

If you want to retry the kubernetes endpoint, then you can use

For example to try 10 times

errorHandler().maximumRedeliveries(10);

See more at
https://camel.apache.org/manual/latest/defaulterrorhandler.html
https://camel.apache.org/components/latest/eips/dead-letter-channel.html

On Fri, Jan 15, 2021 at 7:20 PM Imran Raza Khan <imranrazak...@gmail.com> wrote:
>
> @Claus Ibsen
>
> Thanks for clarification, For timer I agree as it already started so
> SupervisingRouterController will not take care, but for kubernetes route is
> failing at connection level but still SupervisingRouterController  is not
> retrying, But SupervisingRouterController  retry work for my third part of
> broker route
>
>
>     2021-01-15 17:55:18,333 ERROR [org.apa.cam.pro.err.DefaultErrorHandler]
> (Camel (camel-1) thread #1 - timer://ipc) Failed delivery for (MessageId:
> C430425BC77567B-0000000000000000 on ExchangeId:
> C430425BC77567B-0000000000000000). Exhausted after delivery attempt: 1
> caught: io.fabric8.kubernetes.client.KubernetesClientException: Operation:
> [get]  for kind: [Secret]  with name: [broker]  in namespace: [production]
>  failed.
>
>     Message History (complete message history is disabled)
>
> ---------------------------------------------------------------------------------------------------------------------------------------
>     RouteId              ProcessorId          Processor
>                                                    Elapsed (ms)
>     [main-route        ] [main-route        ]
> [from[timer://ipc?delay=60000&repeatCount=1]
>     ] [      4813]
>             ...
>     [GetSecretsAndYQCon] [to5               ]
> [kubernetes-secrets:///?kubernetesClient=#kubernetesClient&operation=getSecret
> ] [         0]
>
>     Stacktrace
>
> ---------------------------------------------------------------------------------------------------------------------------------------
>     : io.fabric8.kubernetes.client.KubernetesClientException: Operation:
> [get]  for kind: [Secret]  with name: [broker]  in namespace: [production]
>  failed.
>             at
> io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:64)
>             at
> io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:72)
>             at
> io.fabric8.kubernetes.client.dsl.base.BaseOperation.getMandatory(BaseOperation.java:225)
>             at
> io.fabric8.kubernetes.client.dsl.base.BaseOperation.get(BaseOperation.java:186)
>             at
> io.fabric8.kubernetes.client.dsl.base.BaseOperation.get(BaseOperation.java:84)
>             at
> org.apache.camel.component.kubernetes.secrets.KubernetesSecretsProducer.doGetSecret(KubernetesSecretsProducer.java:130)
>             at
> org.apache.camel.component.kubernetes.secrets.KubernetesSecretsProducer.process(KubernetesSecretsProducer.java:72)
>             at
> org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:66)
>             at
> org.apache.camel.processor.SendProcessor.lambda$process$2(SendProcessor.java:188)
>             at
> org.apache.camel.support.cache.DefaultProducerCache.doInAsyncProducer(DefaultProducerCache.java:317)
>             at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:187)
>             at
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:395)
>             at
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
>             at
> org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:60)
>             at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:147)
>             at
> org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:312)
>             at
> org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:207)
>             at
> org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:76)
>             at java.util.TimerThread.mainLoop(Timer.java:555)
>             at java.util.TimerThread.run(Timer.java:505)
>     Caused by: javax.net.ssl.SSLHandshakeException: Remote host closed
> connection during handshake
>             at
> sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:994)
>             at
> sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
>             at
> sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
>             at
> sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)
>             at
> okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:336)
>             at
> okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.java:300)
>             at
> okhttp3.internal.connection.RealConnection.connect(RealConnection.java:185)
>             at
> okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:224)
>             at
> okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.java:108)
>             at
> okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.java:88)
>             at
> okhttp3.internal.connection.Transmitter.newExchange(Transmitter.java:169)
>             at
> okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:41)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
>             at
> okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
>             at
> okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
>             at
> okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
>             at
> io.fabric8.kubernetes.client.utils.BackwardsCompatibilityInterceptor.intercept(BackwardsCompatibilityInterceptor.java:133)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
>             at
> io.fabric8.kubernetes.client.utils.OIDCTokenRefreshInterceptor.intercept(OIDCTokenRefreshInterceptor.java:41)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
>             at
> io.fabric8.kubernetes.client.utils.ImpersonatorInterceptor.intercept(ImpersonatorInterceptor.java:68)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
>             at
> io.fabric8.kubernetes.client.utils.HttpClientUtils.lambda$createHttpClient$3(HttpClientUtils.java:153)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
>             at
> okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
>             at
> okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:229)
>             at okhttp3.RealCall.execute(RealCall.java:81)
>             at
> io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:472)
>             at
> io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:435)
>             at
> io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleGet(OperationSupport.java:402)
>             at
> io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleGet(OperationSupport.java:384)
>             at
> io.fabric8.kubernetes.client.dsl.base.BaseOperation.handleGet(BaseOperation.java:935)
>             at
> io.fabric8.kubernetes.client.dsl.base.BaseOperation.getMandatory(BaseOperation.java:220)
>             ... 17 more
>     Caused by: java.io.EOFException: SSL peer shut down incorrectly
>             at sun.security.ssl.InputRecord.read(InputRecord.java:505)
>             at
> sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:975)
>             ... 58 more



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to