2014-06-13 10 views
8

Mamy zainstalowane środowisko JRE w naszym środowisku produkcyjnym, ale nie JDK. Wersje JRE i OS znajdują się poniżej.Jak utworzyć zrzut sterty za pomocą środowiska JRE?

[[email protected] ~]$ java -version 
java version "1.6.0_45" 
Java(TM) SE Runtime Environment (build 1.6.0_45-b06) 
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode) 
[[email protected] ~]$ uname -a 
Linux mymachine.mydomain.com 3.10.35-43.137.amzn1.x86_64 #1 SMP Wed Apr 2 09:36:59 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 

Nie wydaje się jakby „jmap” narzędzie jest obecny wszędzie w systemie, bez dostępu do konta root, nie jestem w stanie go zainstalować w dowolnym miejscu systemu. Co mogę zrobić, aby uzyskać zrzut sterty (np. Utworzyć plik .hprof)?

Używamy również JBoss 7.1.3.AS, jeśli to ma znaczenie.

+0

Myślę, że potrzebujesz JDK, zaczekajmy i zobaczmy, czy ktoś ma inne rozwiązanie. – kosa

+1

Począwszy od jre 7, Oracle dostarcza zestaw serwer-jre, który zawiera te narzędzia. http://www.oracle.com/technetwork/java/javase/downloads/server-jre7-downloads-1931105.html –

+0

Dobrze wiedzieć. Niespokojna aktualizacja środowiska JRE nie jest obecnie dostępna. – Dave

Odpowiedz

7

Wbudowane narzędzia, takie jak jmap, jconsole i jvisualvm są dostępne tylko w JDK. Inną opcją jest dodanie argumentu VM -XX:+HeapDumpOnOutOfMemoryError, który mówi maszynie JVM, aby automatycznie generowała zrzut sterty, gdy wystąpi OutOfMemoryError, oraz argumentem -XX:HeapDumpPath, aby określić ścieżkę dla zrzutu sterty.

Jeśli nie można uaktualnić JRE w użyciu narzędzia, takie jak te w JRE serwera 7 (http://www.oracle.com/technetwork/java/javase/downloads/server-jre7-downloads-1931105.html), może trzeba rozważyć osób trzecich profilowania narzędzia, takie jak JProfiler lub jedynek listy here.

+0

Jestem otwarty na inne narzędzia inne niż jmap, które mogą wygenerować zrzut sterty. Chodzi o to, że będę musiał uruchomić go z mojego katalogu domowego. – Dave

+0

Może przyda się profiler innej firmy. Odpowiedź zaktualizowana. – manouti

0

Wydaje się, że jedynym wyjściem jest skompresowanie lokalnego SDK6 i umieszczenie go gdzieś na serwerze. Następnie otwórz zdalną konsolę i z katalogu bin tego SDK zrzutu JRE.

Jeśli Twój klient nie zezwala na przesyłanie plików wykonywalnych, to oczywiście masz pecha.

Powiązane problemy