ah c -ws не распознает, когда соединение разрывается - PullRequest
1 голос
/ 05 мая 2020

Мы используем apache camel с ah c -ws для отправки сообщений из промышленной среды на облачный сервер через веб-сокеты в конфигурации по умолчанию через ssl.

Но когда соединение прерывается из-за, например, отсоединения сетевого кабеля. ah c -ws по-прежнему отправляет данные.

Есть ли какая-то конфигурация, которую нам не хватает, чтобы гарантировать, что клиент получил сообщение?

Мы используем apache camel версии 3.1.0 и компонент ah c -ws, который он использует asyn c -http-client 2.10.5

    <route id="timeseriesRoute" errorHandlerRef="timeseriesExceptionHandler" startupOrder="10001">
        <from uri="seda:distributorTimeseriesEntryPoint"/>
        <to uri="ahc-wss"/>
    </route>

# normal operation sending data
2020-05-11 15:37:47.428 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"53d4539a-fa79-45b5-b849-7ad465c42339","body":[{"name":"PROGRAM_END_COUNTER_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204267421,3979,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:37:47.429 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"9f5292d8-aedc-4509-ac7f-82884eb1e70e","body":[{"name":"OPERATION_MODE_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204267421,1,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:37:47.429 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"fafe9fd4-eb28-4171-a642-f6a1cee66017","body":[{"name":"RUNTIME_DATA_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204267421,true,3]],"attributes":{"datatype":"BOOLEAN"}}]}
2020-05-11 15:37:47.712 DEBUG 36156 --- [cHttpClient-3-1] o.a.camel.component.ahc.ws.WsEndpoint    : Received message --> {"statusCode":202,"messageId":"53d4539a-fa79-45b5-b849-7ad465c42339"}
2020-05-11 15:37:47.814 DEBUG 36156 --- [cHttpClient-3-1] o.a.camel.component.ahc.ws.WsEndpoint    : Received message --> {"statusCode":202,"messageId":"9f5292d8-aedc-4509-ac7f-82884eb1e70e"}
2020-05-11 15:37:47.915 DEBUG 36156 --- [cHttpClient-3-1] o.a.camel.component.ahc.ws.WsEndpoint    : Received message --> {"statusCode":202,"messageId":"fafe9fd4-eb28-4171-a642-f6a1cee66017"}
# removed network cable
2020-05-11 15:37:52.432 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"a25875af-8f54-4f2c-bc97-387cb824fc30","body":[{"name":"PROGRAM_END_COUNTER_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204272422,19594,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:37:52.434 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"aadea2b9-5d95-4df2-a776-9030666c8d4b","body":[{"name":"OPERATION_MODE_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204272422,2,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:37:52.439 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"7e78a167-782d-4eb6-a6e5-f91bd8e488fd","body":[{"name":"RUNTIME_DATA_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204272422,false,3]],"attributes":{"datatype":"BOOLEAN"}}]}
2020-05-11 15:37:53.172 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"9021bcee-431a-4e4c-ba9e-999d57292dfd","body":[{"name":"OPERATION_MODE_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589187213782,2,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:37:53.178 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"d72d4cd3-26f8-4f99-a712-63a71de6d02d","body":[{"name":"OPERATION_MODE_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589187203987,1,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:37:53.184 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"d5457048-9487-4da5-bc0c-c3113672d8a7","body":[{"name":"RUNTIME_DATA_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589187203987,true,3]],"attributes":{"datatype":"BOOLEAN"}}]}
2020-05-11 15:37:53.189 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"df38d5f2-278b-4c3e-a814-3f779f4a83a9","body":[{"name":"PROGRAM_END_COUNTER_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589187203987,48125,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:37:53.195 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"a451aa2d-67e4-40fb-a5ac-eba01a11e014","body":[{"name":"RUNTIME_DATA_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589187186939,true,3]],"attributes":{"datatype":"BOOLEAN"}}]}
2020-05-11 15:37:57.427 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"c9905ac3-38b2-4388-8e42-3a8d0994cabd","body":[{"name":"PROGRAM_END_COUNTER_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204277423,51036,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:37:57.427 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"3fe66fb8-7b88-4da2-b090-8699a2f3afca","body":[{"name":"RUNTIME_DATA_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204277423,true,3]],"attributes":{"datatype":"BOOLEAN"}}]}
2020-05-11 15:37:57.429 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"c847d695-d84b-4726-9c84-5e48d36ee6ad","body":[{"name":"OPERATION_MODE_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204277423,0,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:38:03.218 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"c6281b02-c431-4b86-bcbf-07700e2b8450","body":[{"name":"OPERATION_MODE_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589187219192,0,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:38:03.223 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"705363cb-bdb7-4fb8-bae7-f17d1b693658","body":[{"name":"RUNTIME_DATA_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589187219191,true,3]],"attributes":{"datatype":"BOOLEAN"}}]}
2020-05-11 15:38:03.229 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"979b5e45-23e0-4b99-aaf3-7cb8df9287a8","body":[{"name":"RUNTIME_DATA_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589187213782,false,3]],"attributes":{"datatype":"BOOLEAN"}}]}
2020-05-11 15:38:03.234 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"f510bb6e-3fc3-4b1c-bc42-90b43110e394","body":[{"name":"PROGRAM_END_COUNTER_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589187213782,17756,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:38:03.239 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"a2a2e088-d2dc-4028-9643-25a25fcbdf80","body":[{"name":"RUNTIME_DATA_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589187198214,false,3]],"attributes":{"datatype":"BOOLEAN"}}]}
2020-05-11 15:38:03.426 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"de90d80a-9433-4310-87e9-eedf6f2277c6","body":[{"name":"OPERATION_MODE_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204283421,1,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:38:03.429 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"a2971272-c37c-4f82-b698-8baea6dcc7dc","body":[{"name":"PROGRAM_END_COUNTER_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204283421,48247,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:38:03.429 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"830c7ec5-2df1-476d-8e50-0f0c47e04232","body":[{"name":"RUNTIME_DATA_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204283421,false,3]],"attributes":{"datatype":"BOOLEAN"}}]}
2020-05-11 15:38:08.429 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"7be3a918-3cc0-4b77-8213-6e05c8c07775","body":[{"name":"RUNTIME_DATA_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204288422,true,3]],"attributes":{"datatype":"BOOLEAN"}}]}
2020-05-11 15:38:08.430 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"7264f325-7553-4fa8-8903-46482c10b968","body":[{"name":"OPERATION_MODE_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204288422,2,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:38:08.431 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"daf59001-6f83-47f3-842e-13d4641c1f4f","body":[{"name":"PROGRAM_END_COUNTER_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589204288422,49374,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:38:11.641 DEBUG 36156 --- [cHttpClient-3-1] o.a.camel.component.ahc.ws.WsEndpoint    : websocket closed - reconnecting
2020-05-11 15:38:11.641  INFO 36156 --- [cHttpClient-3-1] o.a.camel.component.ahc.ws.WsEndpoint    : Reconnecting websocket: wss
2020-05-11 15:38:11.641 DEBUG 36156 --- [cHttpClient-3-1] o.a.camel.component.ahc.ws.WsEndpoint    : Connecting to wss
2020-05-11 15:38:13.278 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"adfc5926-7c20-46c6-a56d-66c78cedd9d5","body":[{"name":"PROGRAM_END_COUNTER_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589187242191,33465,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:38:13.278  INFO 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsEndpoint    : Reconnecting websocket: wss
2020-05-11 15:38:13.278 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsEndpoint    : Connecting to wss
2020-05-11 15:38:21.654 DEBUG 36156 --- [cHttpClient-3-4] o.a.camel.component.ahc.ws.WsEndpoint    : websocket on error

java.net.ConnectException: connection timed out: hostname/ip:443
    at org.asynchttpclient.netty.channel.NettyConnectListener.onFailure(NettyConnectListener.java:179) ~[async-http-client-2.10.5.jar:na]
    at org.asynchttpclient.netty.channel.NettyChannelConnector$1.onFailure(NettyChannelConnector.java:108) ~[async-http-client-2.10.5.jar:na]
    at org.asynchttpclient.netty.SimpleChannelFutureListener.operationComplete(SimpleChannelFutureListener.java:28) ~[async-http-client-2.10.5.jar:na]
    at org.asynchttpclient.netty.SimpleChannelFutureListener.operationComplete(SimpleChannelFutureListener.java:20) ~[async-http-client-2.10.5.jar:na]
    at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:577) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:570) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:549) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:490) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:615) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:608) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:117) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:263) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:139) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:510) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:518) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1044) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: io.netty.channel.ConnectTimeoutException: connection timed out: hostname/ip:443
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:261) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    ... 9 common frames omitted

2020-05-11 15:38:21.655  WARN 36156 --- [cHttpClient-3-1] o.a.camel.component.ahc.ws.WsEndpoint    : Error re-connecting to websocket

java.util.concurrent.ExecutionException: java.net.ConnectException: connection timed out: hostname/ip:443
    at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395) ~[na:na]
    at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999) ~[na:na]
    at org.asynchttpclient.netty.NettyResponseFuture.get(NettyResponseFuture.java:201) ~[async-http-client-2.10.5.jar:na]
    at org.apache.camel.component.ahc.ws.WsEndpoint.connect(WsEndpoint.java:130) ~[camel-ahc-ws-3.1.0.jar:3.1.0]
    at org.apache.camel.component.ahc.ws.WsEndpoint.reConnect(WsEndpoint.java:159) ~[camel-ahc-ws-3.1.0.jar:3.1.0]
    at org.apache.camel.component.ahc.ws.WsEndpoint$WsListener.onClose(WsEndpoint.java:174) ~[camel-ahc-ws-3.1.0.jar:3.1.0]
    at org.asynchttpclient.netty.ws.NettyWebSocket.onClose(NettyWebSocket.java:259) ~[async-http-client-2.10.5.jar:na]
    at org.asynchttpclient.netty.handler.WebSocketHandler.handleChannelInactive(WebSocketHandler.java:162) ~[async-http-client-2.10.5.jar:na]
    at org.asynchttpclient.netty.handler.AsyncHttpClientHandler.channelInactive(AsyncHttpClientHandler.java:144) ~[async-http-client-2.10.5.jar:na]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:257) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:243) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:236) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:81) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.handler.codec.MessageAggregator.channelInactive(MessageAggregator.java:438) ~[netty-codec-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:257) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:243) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:236) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:393) ~[netty-codec-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:358) ~[netty-codec-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:257) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:243) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:236) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:393) ~[netty-codec-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:358) ~[netty-codec-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.handler.ssl.SslHandler.channelInactive(SslHandler.java:1075) ~[netty-handler-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:257) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:243) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:236) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1417) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:257) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:243) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:913) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:819) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:510) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:518) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1044) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: java.net.ConnectException: connection timed out: hostname/ip:443
    at org.asynchttpclient.netty.channel.NettyConnectListener.onFailure(NettyConnectListener.java:179) ~[async-http-client-2.10.5.jar:na]
    at org.asynchttpclient.netty.channel.NettyChannelConnector$1.onFailure(NettyChannelConnector.java:108) ~[async-http-client-2.10.5.jar:na]
    at org.asynchttpclient.netty.SimpleChannelFutureListener.operationComplete(SimpleChannelFutureListener.java:28) ~[async-http-client-2.10.5.jar:na]
    at org.asynchttpclient.netty.SimpleChannelFutureListener.operationComplete(SimpleChannelFutureListener.java:20) ~[async-http-client-2.10.5.jar:na]
    at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:577) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:570) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:549) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:490) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:615) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:608) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:117) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:263) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:139) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    ... 7 common frames omitted
Caused by: io.netty.channel.ConnectTimeoutException: connection timed out: hostname/ip:443
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:261) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    ... 9 common frames omitted

2020-05-11 15:38:23.285 DEBUG 36156 --- [cHttpClient-3-5] o.a.camel.component.ahc.ws.WsEndpoint    : websocket on error

java.net.ConnectException: connection timed out: hostname/ip:443
    at org.asynchttpclient.netty.channel.NettyConnectListener.onFailure(NettyConnectListener.java:179) ~[async-http-client-2.10.5.jar:na]
    at org.asynchttpclient.netty.channel.NettyChannelConnector$1.onFailure(NettyChannelConnector.java:108) ~[async-http-client-2.10.5.jar:na]
    at org.asynchttpclient.netty.SimpleChannelFutureListener.operationComplete(SimpleChannelFutureListener.java:28) ~[async-http-client-2.10.5.jar:na]
    at org.asynchttpclient.netty.SimpleChannelFutureListener.operationComplete(SimpleChannelFutureListener.java:20) ~[async-http-client-2.10.5.jar:na]
    at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:577) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:570) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:549) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:490) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:615) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:608) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:117) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:263) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:139) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:510) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:518) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1044) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.42.Final.jar:4.1.42.Final]
    at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: io.netty.channel.ConnectTimeoutException: connection timed out: hostname/ip:443
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:261) ~[netty-transport-4.1.42.Final.jar:4.1.42.Final]
    ... 9 common frames omitted

2020-05-11 15:38:23.289 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsProducer    : Sending out {"messageId":"4952fb3a-805a-4c46-9647-1607a4ca9b1e","body":[{"name":"OPERATION_MODE_cd21538e-d6a1-4dfb-bcde-251e8ce511df","datapoints":[[1589187225192,1,3]],"attributes":{"datatype":"INTEGER"}}]}
2020-05-11 15:38:23.289  INFO 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsEndpoint    : Reconnecting websocket: wss
2020-05-11 15:38:23.289 DEBUG 36156 --- [eriesEntryPoint] o.a.camel.component.ahc.ws.WsEndpoint    : Connecting to wss
2020-05-11 15:38:23.322  INFO 36156 --- [CloudTimeseries] o.a.c.i.e.RuntimeCamelCatalogResolver    : Detected and using RuntimeCamelCatalog: org.apache.camel.catalog.impl.DefaultRuntimeCamelCatalog@3dd3d313

  • веб-сервис продолжает отправлять данные после удаления сетевого кабеля (2020-05-11 15:37:48), который он обнаруживает ошибка позже (2020-05-11 15:38:21), но данные, отправленные тем временем, потеряны.
  • Веб-служба подтверждает каждое обработанное сообщение (@see нормальная работа), но я не не вижу, чтобы отреагировать на это.
  • обработчик ошибок не реагирует на это.
...