Domanda

sto vedendo un problema in cui una coda non viene eseguito il backup ma il tempo per il consumatore di realmente eseguire il messaggio di JMS è compresa tra 100-200 secondi dalla creazione (come misurato attraverso il JMSTimestamp-CurrentTime).

Il flusso era abbastanza basso per la coda, a meno di 30 messaggi al minuto. Sono stato in grado di risolvere il problema riavviando ActiveMQ, dopo di che i messaggi venivano avviati con meno di 1 ms da quando sono stati creati.

Sto usando ActiveMQ 5.4.1 ed il tempo totale di esecuzione normale per il lavoro svolto nel MDB è inferiore a 2ms. Al tempo del ritardo, non ci sono messaggi di errore nel registro ActiveMQ, CPU era bassa e aveva un sacco di memoria.

Sembra che il consumatore sta tirando il messaggio dalla coda, ma seduto su di loro per qualche motivo.

C'è qualche problema di configurazione che potrebbe causare questo problema?

Modifica:

La prima linea del mio MDB è la seguente:

 /* Check the time since this message was created versus processed */
        try {
            long secondsToProcess = TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis() - aMessage.getJMSTimestamp());
            if (secondsToProcess > 5) {
                log.error("JMS Consumer Start Delay: " + secondsToProcess + " s" + " JMS Message took more then 5 seconds to be processed");
            } else {
                log.debug("JMS Consumer Start Delay: " + secondsToProcess + " s");
            }
        } catch (Exception e) {
            log.error(e);
        }
È stato utile?

Soluzione 2

Come si è visto, ActiveMQ stava comportando bene, i miei lavoratori sono stati impiegando troppo tempo, quindi, eseguire il backup della coda. Il codice in mia domanda mi ha permesso di vedere che.

Altri suggerimenti

Come stai certo che il consumatore sta tirando immediatamente il messaggio dalla coda? ActiveMQ fornisce le proprietà JMSActiveMQBrokerInTime e JMSActiveMQBrokerOutTime è possibile utilizzare per confermare (vedi ActiveMQ proprietà dei messaggi ).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top