0
votes

I see that my custom Spring cloud stream sink with log sink stream app dependency loses RabbitMQ connectivity during RabbitMQ outage, tries making a connection for 5 times and then stops its consumer. I have to manually restart the app to make it successfully connect once the RabbitMQ is up. When I see the default properties of rabbitMQ binding here, it gives interval time but there is no property for infinite retry(which i assume to be default behaviour). Can someone please let me know what I might be missing here to make it try connecting infinitely ?

Error faced during outage triggering consumer retry :
2017-08-08T10:52:07.586-04:00 [APP/PROC/WEB/0] [OUT] Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - home node 'rabbit@229ec9f90e07c75d56a0aa84dc28f602' of durable queue 'datastream.dataingestor.datastream' in vhost '8880756f-8a21-4dc8-9b97-95e5a3248f58' is down or inaccessible, class-id=50, method-id=10)
1
I'm getting similar issue after 3 times, not 5. Apparently this is the default value from SimpleMessageListenerContainer (docs.spring.io/spring-amqp/docs/1.7.4.RELEASE/reference/…). Are you overriding this number somehow?L. Holanda

1 Answers

0
votes

It appears you have a RabbitMQ cluster and the queue in question is hosted on a down node.

If the queue was HA, you wouldn't have this problem.

The listener container does not (currently) handle that condition. It will retry for ever if it loses connection to RabbitMQ itself.

Please open a JIRA Issue and we'll take a look. The container should treat that error the same as a connection problem.