Recentemente ho aggiornato un server da ActiveMQ dalla versione 5.8 alla versione più recente (5.11.1). Da allora, ho notato in modo un po 'sporadico che i messaggi si accumulano in una particolare coda e non possono essere rimossi.ActiveMQ non disconnettere i messaggi Coda
La nostra architettura ha un produttore, un consumatore. Vedo che il consumatore è ancora connesso ma i messaggi si stanno accumulando dal produttore. La mia soluzione è stata quella di cancellare la coda tramite la console web. Dopodiché, vedo immediatamente che l'utente si ricollega e i messaggi iniziano a essere elaborati di nuovo.
Se è rilevante, in questo caso il produttore esegue NMS su .NET e l'utente esegue JMS su Java 1.7.
Funzionerebbe se si disconnette/re-connec il consumatore? Cancellare la coda sembra essere una "soluzione bruteforce". – SubOptimal
@SubOptimal buona domanda, in realtà non sono sicuro della risposta a questo. Non ho alcun gancio nell'applicazione per disconnettere/riconnettere il consumatore mentre l'applicazione è in esecuzione. Né so di un modo per scoprire che è in questo stato bloccato dal momento che dal suo punto di vista, i messaggi non stanno arrivando. – Ternary
Non appena la comunicazione si è bloccata la prossima volta. È possibile modificare il livello di registrazione per il logger relativo alla classe 'org.apache.activemq.transport.TransportLogger' a' DEBUG' tramite l'interfaccia JMX utilizzando JConsole. Quindi dovresti vedere la comunicazione del broker. Forse questo spiegherebbe cosa accadrà. – SubOptimal