2012-10-16 21 views
5

Mam aplikację JavaEE obecnie wdrożoną na Glassfish, dla której napisałem test obciążenia, który może za mniej niż godzinę (na razie - przyspieszenie prędkości w trakcie awarii) wyczerpuje pulę połączeń JMS i złamie Glassfish z obłędnie zła wiadomość:Jak mogę śledzić/monitorować otwarte/zamknięte połączenia JMS w Glassfish?

Połączenia w użyciu równe maksymalnemu rozmiarowi puli i wygasaniu maksymalnego czasu oczekiwania. Nie można przydzielić więcej połączeń.

Chciałbym zobaczyć, które z moich komponentów JavaEE przeciekają połączenia JMS. Dla pamięci mógłbym użyć profilera, a także, jak sądzę, mógłbym go użyć do połączeń JDBC. Ale jakie jest najlepsze narzędzie do śledzenia otwartych/zamkniętych połączeń JMS i komponentów, które je tworzą i nie zwalniają?

Odpowiedz

4

Spróbuj użyć urządzenia imqcmd do monitorowania miejsc docelowych JMS. Zapewnia podstawowe ale użytecznych poleceń (LIST, przepłukiwanie, tworzyć ...)

to znajduje się w $GLASSFISH_HOME/mq/bin

Spróbuj poniższych poleceń:

  • lista wszystkich miejsc docelowych JMS
./imqcmd list dst
  • informacje o brokera wydruku
./imqcmd query brk
  • Pokaż statystyki (myślę, że to jest to, czego szukasz). Statystyki są odświeżane co 5 sekund domyślnie
./imqcmd metrics dst -t q -n jms/myQueue -m rts

-m rts oznacza "stopy komunikat". Zobacz documentation, aby uzyskać informacje o innych danych (./imqcmd -h ;-))

Uwaga: każde polecenie wyświetli nazwę użytkownika i hasło. admin/admin to domyślna nazwa użytkownika/hasło (! = poświadczenia asadmin)

+1

W rzeczywistości znalazłem informacje, których potrzebowałem, używając 'metryk svc -n jms -m cxn' – Riduidel

+0

Niezwykle pomocny, nie wiedziałem o programie narzędziowym imqcmd do teraz. Dzięki! –

0

W konsoli Glassfish 3.1 możesz sprawdzić statystykę miejsca docelowego JMS. Jest to w zakładce Serwer -> Zakładka Fizyczne miejsca docelowe JMS -> Kliknij opcję Wyświetl statystyki (Możesz skopiować link i odświeżyć tę stronę, aby uzyskać najnowsze wyniki, takie jak liczba wiadomości w kolejce i pamięć w tym momencie).

Sądzę również, że najlepszym sposobem monitorowania kolejek JMS jest wstawienie informacji o dzienniku na twoich klasach, aby kontrolować, kto produkuje lub pobiera komunikaty (i wie, kto otwiera/zamyka połączenia).