2012-03-05 14 views
5

Voglio che il mio java esca quando si cattura OutOfMemoryError, sto utilizzando il file hprof per scaricare il file .
Non riesco a utilizzare kill -9 <pid> perché la JVM deve essere attiva durante il dumping del file hprof, esiste un modo per interrompere la JVM dopo la creazione del file hprof?

essere chiaro che sto utilizzando la versione JVM di Sun 6.OutOfMemoryError - come uccidere la JVM dopo la creazione dell'hprof

risposta

4

This page sembra implicare che si possibile combinare-XX:+HeapDumpOnOutOfMemoryError e -XX:OnOutOfMemoryError="kill -9 %p"

Presumibilmente, viene creata la heap dump prima del "On. .. "viene eseguito il comando. (Dovrebbe essere facile mettere insieme qualcosa per testarlo.)

+1

Ho combinato questi due argomenti JVM, la tua ipotesi non è completamente corretta, la creazione di heap dump parallela al comando "Su ...", nel mio caso il uccidere è successo prima che la discarica sia stata completamente creata, la morte della JVM nel mezzo della creazione del dump causando il danneggiamento di 'hprof'. –

+0

OK, quindi la pagina Oracle è fuorviante. Ma dovresti comunque essere in grado di lavorare con quel comportamento per ottenere il comportamento desiderato. –

+0

si perdono due punti in '-XX: OnOutOfMemoryError' – mighq

Problemi correlati