Siamo di fronte a un problema casuale con ActiveMQ e i suoi utenti. Osserviamo che pochi consumatori non ricevono messaggi, anche se sono collegati alla coda ActiveMQ. Ma funziona bene dopo il riavvio del consumatore.Il consumatore non riceve messaggi da ActiveMQ
Abbiamo una coda denominata testQueue sul lato ActiveMQ. Un consumatore sta tentando di disattivare i messaggi in coda dalla coda. A tale scopo utilizziamo Spring's DefaultMessageListenerContainer. Il messaggio viene consegnato al nodo del consumatore da ActiveMQ Broker. Dal tcpdump, era ovvio che il messaggio stava raggiungendo il nodo del consumatore, ma il codice del consumatore effettivo non è in grado di vedere il messaggio. In altre parole, il messaggio sembra essere bloccato nel codice del consumatore ActiveMQ o in DefaultMessageListenerContainer di Spring.
Vedere riferimento alla figura seguente. per maggiore chiarezza sulla questione. Il messaggio sta raggiungendo il nodo Consumer, ma non sta raggiungendo la "Classe di consumo effettivo", il che significa che il messaggio è rimasto bloccato nel codice del consumatore AMQ o nel DMLC Spring.
Sotto i dettagli catturati da ActiveMQ admin.
Queue-Nome/In attesa-Message-Count/Consumer-Count/Messaggi-accodato/Messaggi-rimosse dalla coda test/9/1/9/0
seguito sono elencate le più particolari.
connessione-ID/SessionId/selettore/accoda/Ritiri dalla coda/Inviato/Inviato-coda/Prefetch ID: bearsvir52-45176-1375519181268-3: 5/1// 9/0/9/9/250
Dalla seconda tabella è ovvio che i messaggi vengono recapitati al consumatore, ma il consumatore non sta riconoscendo il messaggio. Quindi i messaggi sono bloccati in Dispatch-Queue sul lato broker.
pochi punti per alla vostra attenzione:
1) Non v'è differenza di tempo b/w nodo Broker e il nodo dei consumatori.
2) Osservato il tcpdump dal lato del consumatore. Possiamo vedere il pacchetto MessageDispatch (Openwire) trasferito al nodo del consumatore, ma non è stato possibile trovare il MessageAck (Openwire) per lo stesso.
3) A volte funziona su un nodo e talvolta crea problemi sullo stesso nodo.
potete inserire la configurazione di primavera che mostra il ConectionFactory, DMLC e la classe ascoltatore? –
sto affrontando lo stesso identico problema. Hai avuto una risoluzione? –
Qualche aggiornamento? Ho un problema simile – Nereis