The problem part of the code
@Override
public void run() {
while (isRunning) {
QueueingConsumer.Delivery delivery = null;
try {
delivery = consumer.nextDelivery();
LogUtil.hecsLog("xxxxx", delivery.getBody().toString());
channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false);
} catch (ShutdownSignalException | ConsumerCancelledException | InterruptedException | IOException e) {
LogUtil.hecsLog("xxxxxxxx", consumer.toString());
isRunning = false;
}
}
}
I see that the connection and the channel recovers ok, but not my Queueing consumer.
11-18 19:24:48.528: W/System.err(8921): DefaultExceptionHandler: Consumer com.rabbitmq.client.QueueingConsumer@42ef62d8 (amq.ctag-DbGsS3nubmIqRea5vxumRA) method handleDelivery for channel AMQChannel(amqp://
pro...@86.122.51.121:5672/,1) threw an exception for channel AMQChannel(amqp://
pro...@86.122.51.121:5672/,1):
11-18 19:24:48.528: W/System.err(8921): com.rabbitmq.client.ShutdownSignalException: connection error
11-18 19:24:48.528: W/System.err(8921): at com.rabbitmq.client.QueueingConsumer.checkShutdown(QueueingConsumer.java:172)
11-18 19:24:48.528: W/System.err(8921): at com.rabbitmq.client.QueueingConsumer.handleDelivery(QueueingConsumer.java:124)
11-18 19:24:48.528: W/System.err(8921): at com.rabbitmq.client.impl.ConsumerDispatcher$5.run(ConsumerDispatcher.java:144)
11-18 19:24:48.528: W/System.err(8921): at com.rabbitmq.client.impl.ConsumerWorkService$WorkPoolRunnable.run(ConsumerWorkService.java:95)
11-18 19:24:48.528: W/System.err(8921): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
11-18 19:24:48.528: W/System.err(8921): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
11-18 19:24:48.528: W/System.err(8921): at java.lang.Thread.run(Thread.java:841)
11-18 19:24:48.528: W/System.err(8921): Caused by: java.net.SocketException: recvfrom failed: ETIMEDOUT (Connection timed out)
11-18 19:24:48.528: W/System.err(8921): at libcore.io.IoBridge.maybeThrowAfterRecvfrom(IoBridge.java:545)
11-18 19:24:48.528: W/System.err(8921): at libcore.io.IoBridge.recvfrom(IoBridge.java:509)
11-18 19:24:48.538: W/System.err(8921): at java.net.PlainSocketImpl.read(PlainSocketImpl.java:489)
11-18 19:24:48.538: W/System.err(8921): at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)
11-18 19:24:48.538: W/System.err(8921): at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:241)
11-18 19:24:48.538: W/System.err(8921): at java.io.InputStream.read(InputStream.java:162)
11-18 19:24:48.538: W/System.err(8921): at java.io.BufferedInputStream.fillbuf(BufferedInputStream.java:142)
11-18 19:24:48.538: W/System.err(8921): at java.io.BufferedInputStream.read(BufferedInputStream.java:227)
11-18 19:24:48.538: W/System.err(8921): at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:157)
11-18 19:24:48.538: W/System.err(8921): at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:95)
11-18 19:24:48.538: W/System.err(8921): at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:139)
11-18 19:24:48.538: W/System.err(8921): at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:534)
11-18 19:24:48.538: W/System.err(8921): ... 1 more
11-18 19:24:48.538: W/System.err(8921): Caused by: libcore.io.ErrnoException: recvfrom failed: ETIMEDOUT (Connection timed out)
11-18 19:24:48.538: W/System.err(8921): at libcore.io.Posix.recvfromBytes(Native Method)
11-18 19:24:48.538: W/System.err(8921): at libcore.io.Posix.recvfrom(Posix.java:141)
11-18 19:24:48.538: W/System.err(8921): at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:164)
11-18 19:24:48.538: W/System.err(8921): at libcore.io.IoBridge.recvfrom(IoBridge.java:506)
11-18 19:24:48.538: W/System.err(8921): ... 11 more