RabbitMQ connection timeout issue
Description:
None of the OpenIAM services go UP. There are log messages in the services log files similar to ones below:
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'auditLogHelper': Unsatisfied dependency expressed through field 'queue'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'AuditLogQueue' defined in class path resource [org/openiam/config/AuditVHostConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.openiam.mq.constants.queue.audit.AuditLogQueue]: Factory method 'auditLogQueue' threw exception; nested exception is org.springframework.amqp.AmqpTimeoutException: java.util.concurrent.TimeoutException.
Cause:
The hostname of the RabbitMQ server is not resolved and erlang is not able to connect to the mnesia. The rabbitmqctl status command is executed with a big delay.
Solution:
- Add the RabbitMQ server hostname to the /etc/hosts.
- Make sure the mnesia hostname corresponds to the server hostname.
The string after 'rabbit@' is the current mnesia hostname. If the mnesia hostname does not correspond to the server hostname, you will need to add the mnesia hostname to the /etc/hosts too.