2012-10-16 17 views
5

Ho un'applicazione JavaEE attualmente distribuita su Glassfish per la quale ho scritto un test di caricamento che può, in meno di un'ora (per ora - miglioramenti della velocità di arresto) esaurire il pool di connessioni JMS e rompere Glassfish con il folle messaggio erratoCome posso monitorare/monitorare le connessioni JMS aperte/chiuse in Glassfish?

Connessioni in uso uguale a max-pool-size e max-wait-time scaduto. Impossibile allocare più connessioni.

Mi piacerebbe vedere quali dei miei componenti JavaEE perdono connessioni JMS. Per la memoria, potrei usare un profiler, così come potrei usarlo per le connessioni JDBC, immagino. Ma qual è lo strumento migliore per tenere traccia delle connessioni JMS aperte/chiuse e dei componenti che le creano e non le rilascia?

risposta

4

Provare il imqcmd util per monitorare le destinazioni JMS. Esso fornisce comandi di base, ma Utili (elenco, spurgo, crea ...)

Si trova nel $GLASSFISH_HOME/mq/bin

Prova i seguenti comandi: destinazioni

  • lista tutte le vostre JMS
./imqcmd list dst
  • informazioni sul broker di stampa
./imqcmd query brk
  • Mostra statistiche (credo che sia quello che stai cercando). Le statistiche vengono aggiornate ogni 5 secondi per default
./imqcmd metrics dst -t q -n jms/myQueue -m rts

-m rts sta per "i tassi di messaggi". Vedere documentation per altre informazioni di metrica (./imqcmd -h ;-))

Avviso: ogni comando richiederà nome utente e password. admin/admin sono il nome utente/password di default (! = credenziali di asadmin)

+1

In effetti, ho trovato le informazioni di cui avevo bisogno usando 'metriche svc -n jms -m cxn' – Riduidel

+0

Incredibilmente utile, non ho saputo circa l'utilità imqcmd fino ad ora. Grazie! –

0

Nella console di Glassfish 3.1 è possibile controllare le statistiche di destinazione fisica JMS. Questo è in Server -> scheda Destinazioni fisiche JMS -> Fare clic su Visualizza statistiche (È possibile copiare il collegamento e aggiornare questa pagina per ottenere il risultato più recente, come il numero di messaggi nella coda e memoria in quel momento)

Inoltre, ritengo che il modo migliore per monitorare le code JMS sia inserire alcune informazioni di registro nelle classi per controllare chi produce o consuma messaggi (e sapere chi sono le connessioni di apertura/chiusura).