2012-04-04 33 views
7

Ho un broker MQ attivo che utilizza un trasporto SSL. Ho circa 10 consumatori che stanno usando il broker. Sto usando cammello per configurare i miei percorsi.Hang di ActiveMQ Consumer

Ogni tanto, riaggancia e non consuma nuovi messaggi, anche se riavvio i consumatori, anche se ci sono messaggi in sospeso nelle code.

Ho iniziato a cercare di isolare il punto in cui questo stava accadendo passando tra i miei clienti uno alla volta cercando di replicare il problema. Finalmente sono arrivato a un consumatore in cui avrei potuto ricreare il problema. Si bloccherà dopo un periodo di tempo, tuttavia, se vado alla console di amministrazione MQ attiva e provo a visualizzare i messaggi in coda, ricomincerà a funzionare. Penso che Jetty stia causando il verificarsi di una connessione per aggiornare la coda per la pagina web, e quindi sbloccare alcuni problemi di thread che sto avendo. Come dovrei eseguire il debug di questo?

Grazie

+0

Sembra un problema ActiveMq. Se hai una tale situazione e inizia un nuovo cliente, riceve i messaggi? – Julias

+0

No, non necessariamente. Ho provato prima a spegnere il consumo, quindi a riaccenderlo e non tornerà in coda per ricevere messaggi. – Derek

risposta

7

Un mio collega inciampato su qualcosa di interessante, e ho appena trovato una spiegazione su Internet: http://activemq.2283324.n4.nabble.com/Consumer-is-not-able-to-pick-messages-from-queue-td2531722.html

Apparentemente c'è una dimensione della pagina che può essere riempita quando si ha un selettore e tutti i i messaggi sono nella stessa coda. Stava succedendo per noi: non avevo avviato il consumatore, quindi ho finito con una pagina intera di messaggi con selettori per un altro consumatore, e questo ha impedito al cliente in esecuzione di ricevere ulteriori lavori.

0

Troppo tardi per te, ma ho avuto lo stesso problema e il problema era che stavo cercando di aggiungere cose alla coda usando la stessa connessione che stavo usando per rimuovere le cose dalla coda.

Una volta separati (due contesti completamente diversi, uno per la produzione e l'altro per il consumo), il problema si è risolto.