Моя проблема заключалась в том, что я использовал приложение для моего журнала.
public class LogAppender extends AppenderBase<ILoggingEvent> implements CommandLineRunner
Это приложение опубликовало sh журнал для посредника
@Override
protected void append(ILoggingEvent event) {
ServerLogLine log = new ServerLogLine(event);
if (logPublisher != null) {
logPublisher.publish(log);
}
}
Но с возможностью переключения при сбое, когда брокер останавливается, класс FailoverTransport отправляет LOG:
LOG.warn("Transport ({}) failed {} attempting to automatically reconnect: {}",
connectedTransportURI, (reconnectOk ? "," : ", not"), e);
И из-за моего LogAppender программа блокирует здесь.
Исправление в методе init LogAppender:
// Remove log level for activemq
logger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger("org.apache.activemq");
logger.setLevel(Level.toLevel("OFF"));