Esercizio 1.2: Cattura di dump di heap

Prima di iniziare, è necessario aver completato l'Esercizio 1.1: Importazione della risorsa richiesta.

Scenario

L'organizzazione in uso prevede un sistema di accodamento disposto su tre file appartenente ad un'applicazione proxy web. Ciascuna fila del sistema di accodamento dispone di una propria coda. Il gruppo preposto ai test ha rilevato che l'applicazione presenta una perdita di dati di memoria supponendo che ciò si verifichi nel sistema di accodamento. Così come agli sviluppatori di una delle code, viene qui richiesto di determinare in quale fila si determini la perdita di dati di memoria.

Panoramica

Per eseguire l'analisi della perdita di dati di memoria, è necessario catturare due dump di heap Java.

L'heap è un blocco di memoria che la macchina virtuale Java (JVM), quando in esecuzione, utilizza per memorizzare oggetti Java. La memoria heap Java viene gestita da un raccoglitore di dati obsoleti che, in automatico, annulla l'assegnazione di memoria agli oggetti Java ai quali non rimangono più riferimenti.

Un dump di heap è un'immagine del contenuto di heap in un determinato momento.

Sono necessari due dump di heap per poter osservare la modalità di utilizzo di memoria tra due punti durante l'esecuzione dell'applicazione in uso. Un algoritmo incorporato confronta gli heap ed individua gli oggetti che risiedono impropriamente in memoria. L'algoritmo analizza i seguenti indicatori al fine di individuare le probabili perdite di dati: ovvero gli oggetti che risultano in memoria per l'intero intervallo di tempo tra i due dump di heap, un aumento nel numero di oggetti di una determinata classe nel secondo heap ed il numero di riferimenti ad un oggetto.

Preparazione per la cattura di dump di heap

Per procedere alla cattura di dump di heap, è necessario passare alla prospettiva Creazione profili e log:

  1. Nella barra dei menu di Software Development Platform, selezionare Finestra> Apri prospettiva > Altro... Viene visualizzata la finestra di dialogo Seleziona prospettiva.
  2. Nella parte inferiore sinistra della finestra, fare clic su Mostra tutto. Nella casella di controllo appare un segno di spunta.
  3. Nell'elenco delle prospettive, selezionare Creazione profili e log e fare clic su OK.
  4. Se viene visualizzata la finestra di dialogo Confirm Enablement, fare clic su Always enable capabilities and don't ask me again quindi fare clic su OK.
  5. L'applicazione Software Development Platform passa alla prospettiva Creazione profili e log.

Cattura di dump di heap

In questa esercitazione, si procederà alla cattura manuale di dump di heap (in alternativa, è possibile impostare intervalli di tempo per la cattura automatica di dump di heap oppure importare dump di heap esistenti).

Per la cattura di dump di heap:

  1. Eseguire l'applicazione:
    1. Nella barra dei menu, selezionare Esegui > Profilo... Viene visualizzata la finestra di dialogo Profilo.
    2. Nell'elenco delle configurazioni, fare doppio clic su Applicazione Java. Nell'elenco, viene visualizzata la voce Nuova_configurazione.
    3. Nel campo Nome, digitare ThreeTierQueue_MemLkAnalysis.
    4. Nella scheda principale, accanto al campo Progetto, fare clic su Sfoglia. Viene visualizzata la finestra di dialogo Seleziona progetto.
    5. Selezionare ThreeTierQueue e fare clic su OK.
    6. Accanto al campo "Classe principale", fare clic su Ricerca.
    7. Nella finestra di dialogo Scegli tipo principale, selezionare TestThreeTierQueue, quindi fare clic su OK.
    8. Nella finestra di dialogo Profilo, fare clic sulla scheda Creazione profili.
    9. Nella scheda secondaria Panoramica, selezionare la casella di controllo della serie di creazione profili "Analisi perdita di dati di memoria - Dump di heap manuale" (una serie di creazione profili definisce il tipo di dati di creazione profili che deve essere raccolta per l'esecuzione).
    10. Fare clic su Profilo. L'applicazione viene eseguita e la visualizzazione cambia come indicato di seguito:
      • In Controllo creazione profili viene visualizzata una risorsa di creazione profili relativa al processo.
      • Si apre la vista Probabili perdite di dati che contiene un messaggio di Stato corrente con istruzioni su come procedere.
        Nota: se viene visualizzato un messaggio di sicurezza indicante che l'Agent Controller non è disponibile, leggere Se non è possibile raccogliere i dati.
  2. Catturare dump di heap:
    1. Nella barra dei menu, selezionare Finestra > Mostra vista > Console per aprire la vista Console in modo da poter seguire l'esecuzione dell'applicazione.
    2. Utilizzare l'applicazione per circa mezzo minuto in modo da assicurarsi che tutte le classi di cui si desidera creare il profilo siano caricate ed inizializzate.
    3. Seguire le istruzioni presenti nella vista Probabili perdite di dati: fare clic sul pulsante della barra degli strumenti Cattura dump di heap per catturare un dump di heap di riferimento, ovvero il punto di inizio nel confronto di heap. A questo punto, nella vista Controllo creazione profili, vengono visualizzate ulteriori risorse di creazione profili; uno per il Rilevamento automatico perdita dati e l'altro per il dump di heap appena catturato.
    4. Lasciare in esecuzione l'applicazione per un altro minuto, quindi eseguire nuovamente le istruzioni presenti nella vista Probabili perdite di dati, quindi catturare un secondo dump di heap nello stesso modo. In Controllo creazione profili viene visualizzata una risorsa di creazione profili relativa al secondo dump di heap.
    5. Per terminare il processo, fare clic sul pulsante Termina nella vista Console.

Se non è possibile raccogliere i dati

Per poter raccogliere qualsiasi tipo di dati di creazione profili, l'Agent Controller deve essere in esecuzione. Se viene visualizzato un messaggio indicante che l'Agent Controller non è disponibile, accertarsi che l'Agent Controller sia stato installato, avviarlo manualmente e riprovare. Per istruzioni, fare riferimento alla guida di installazione. È possibile accedere alla guida di installazione utilizzando il launchpad oppure è possibile reperirla sul CD del prodotto in disk1/install.html.

Dopo aver raccolto i dati, si è pronti per iniziare l'Esercizio 1.3: Analisi di probabili perdite di dati.

Terminologia | Feedback
(C) Copyright IBM Corporation 2000, 2005. Tutti i diritti riservati.