Niedawno zaktualizowałem serwer z ActiveMQ z 5.8 na najnowszy (5.11.1). Od tego czasu zauważyłem sporadycznie, że wiadomości będą gromadzić się w określonej kolejce i nie będą odbierane.ActiveMQ nie odbiera wiadomości z kolejki
Nasza architektura ma jednego producenta, jednego konsumenta. Widzę, że konsument jest nadal podłączony, ale wiadomości gromadzą się od producenta. Moim rozwiązaniem było usunięcie kolejki za pośrednictwem konsoli internetowej. Po czym natychmiast widzę, jak konsument ponownie się łączy i wiadomości są ponownie przetwarzane.
Jeśli jest to istotne, w tym przypadku producent uruchamia system NMS na platformie .NET, a konsument uruchamia system JMS w języku Java 1.7.
Czy to zadziała, jeśli odłączysz/połączysz odbiorcę? Usunięcie dźwięków kolejki jest "poprawką bruteforce". – SubOptimal
@SubOptimal dobre pytanie, właściwie nie jestem pewien na odpowiedź. Nie mam żadnych haczyków do aplikacji, aby odłączyć/ponownie połączyć konsumenta podczas działania aplikacji. Nie wiem też, jak wykryć, że jest w tym utkniętym stanie, ponieważ z jego punktu widzenia wiadomości nie nadchodzą. – Ternary
Jak tylko komunikacja zatrzymała się następnym razem. Możesz zmienić poziom rejestrowania loggera związany z klasą "org.apache.activemq.transport.TransportLogger" na "DEBUG" poprzez interfejs JMX przy użyciu JConsole. Następnie powinieneś zobaczyć komunikat brokera. Może to wyjaśniałoby, co się stanie. – SubOptimal