Quando si crea il profilo di un'applicazione, la vista console non viene visualizzata per impostazione predefinita nella prospettiva Creazione profili e log.
Per aprire la vista console nella prospettiva Creazione profili e log, selezionare Finestra.>Mostra vista->Console.
Per visualizzare stdout nella console, scegliere Finestra->Preferenze->Esegui/Debug->Console e selezionare Mostra quando il programma scrive in output standard.
Durante la creazione di un nuovo file di origine Probekit, la procedura guidata consente di scegliere la codifica XML da utilizzare. La selezione predefinita è ASCII. Se si desidera utilizzare caratteri non ASCII in qualsiasi punto del file di origine probe (ad esempio, nei campi Etichetta o Descrizione o nel codice Java del frammento), sarà necessario scegliere la codifica UTF-8 e non ASCII.
Per modificare la codifica di un file di origine probe esistente, selezionare il file con il tasto destro del mouse e scegliere Apri con -> Editor di testo. Modificare la codifica nell'intestazione XML in "UTF-8" e salvare e chiudere il file. Fare nuovamente clic con il tasto destro del mouse e scegliere Apri con -> Editor probe per modificare il contenuto del file.
La funzione di analisi delle perdite non è disponibile per i programmi utente in esecuzione su OS/400 iSeries(TM). I dump heap ottimizzati Hyades generati in questa piattaforma, non sono completi e non è possibile generarli in qualsiasi altro formato.
Le prestazioni degli strumenti di creazione sono correlate direttamente alla quantità di dati da raccogliere e alla velocità in cui tali dati vengono trasferiti al workbench. Quando la quantità di dati da raccogliere aumenta, si verificherà un rallentamento delle prestazioni sia per quanto riguarda il tempo impiegato per effettuare l'analisi, sia per quanto riguarda la memoria disponibile per eseguire altre attività. Le prestazioni per la creazione profili possono essere migliorate in diversi modi.
- Un buon inizio consiste nel raccogliere una quantità minima di dati sufficiente per creare il profilo di una funzione. A questo fine, impostare un filtro più efficace nella configurazione di avvio della creazione profili. Nella finestra Esegui->Profilo, selezionare la scheda Creazione profili. Per visualizzare la finestra Filtro, selezionare un insieme di creazione profili, quindi scegliere Modifica Avanti >. Specificare solo le aree di interesse nel filtro. È possibile modificare le impostazioni del filtro per includervi altri dati in qualsiasi momento.
- Se non si desidera creare un profilo del codice di avvio, deselezionare la casella di controllo "Avvia controllo automaticamente all'avvio dell'applicazione" nella scheda Creazione profili - Limiti della finestra Esegui ->Profilo. Tali impostazioni dovrebbero ridurre il tempo necessario per avviare il programma da analizzare e dovrebbero impedire che venga creato un profilo del codice di avvio. Tenere presente che per avviare la creazione profili, è necessario selezionare il pulsante "Avvia controllo" nella barra degli strumenti della vista Controllo creazione profili all'avvio dello spazio di lavoro.
- È possibile reindirizzare l'output a un file. In tal modo verrà utilizzata una quantità di memoria inferiore in RAD. È possibile importare il file in RAD in un momento successivo dal momento che verrà utilizzato solo come riferimento alla creazione profili, in modo da lasciare più memoria libera per questa attività. Questa operazione viene effettuata nella finestra Esegui ->Profilo dove sarà necessario selezionare scheda Creazione profili, la sottoscheda Destinazione, quindi la casella di controllo "Invia dati di creazione profili a un file" prima di avviare la creazione profili. Successivamente, utilizzare la finestra File->Importa e selezionare il tipo di file di creazione profili. Tenere presente che non è possibile visualizzare i dati durante la creazione profili se questa opzione è selezionata. Sarà necessario prima importare il file, quindi visualizzare i dati. Per ridurre ulteriormente la quantità di memoria, importare solo una parte del file di creazione profili nella finestra di importazione, oppure importare parti differenti ed esaminarle indipendentemente una dall'altra.
- La creazione profili richiede una grande quantità di memoria, quindi porrebbe risultare utile aumentare la quantità di memoria virtuale utilizzata da RAD. Per avviare RAD con 512MB di memoria virtuale (e 1GB massimo), aggiungere la seguente riga al file rationalsdp.ini: VMArgs=-Xms512m -Xmx1024m
- Se il problema si verifica durante la raccolta dati nel sistema di destinazione, aumentare la dimensione dei buffer utilizzati per inviare i dati a RAD. Aggiungere la seguente riga al file serviceconfig.xml e riavviare l'agente (in tal modo la dimensione del buffer viene aumentata a 256MB). In molte applicazioni intensive CPU, risulta utile aumentare anche la dimensione del canale dati: <Agent configuration="default" name="Java Profiling Agent" dataChannelSize="256M" type="profiler"/>
Durante la raccolta dei dump heap ottimizzati Hyades binari, se i dati vengono inviati ad un file trcxml selezionando "Invio dei dati di creazione profili ad un file", tenere presente quanto segue:
Agent Controller deve essere in esecuzione sull'host di distribuzione per accedere ai file di files salvati sull'host. La prima volta che viene eseguito Importa->File di creazione profili nel file trcxml, l'analisi delle perdite e la visualizzazione dei grafici dei riferimenti agli oggetti, funzionano come previsto.
Se si esegue Importa->File di creazione profili una seconda volta, l'importazione funzionerà, ma i tentativi di esecuzione dell'analisi delle perdite o della visualizzazione del grafico dei riferimenti agli oggetti, potrebbe avere esito negativo. Questo accade perché i file di heap richiesti potrebbero non essere più disponibili sull'host di distribuzione.
Se si verifica questo problema, accedere ai file heap dal progetto in cui è stato importato il file trcxml. I file di heap si trovano nella directory "leakanalysisheapdir" nella directory del progetto.
I dump heap IBM(C)OS/390(SVC) sono molto grandi. L'espansione di un dump heap di grandi dimensione per visualizzarlo nella vista Grafico di riferimento agli oggetti, potrebbe richieste tempi lunghi. Di conseguenza, l'operazione sembra essersi bloccata. L'attività di espansione del dump heap potrebbe ancora essere in corso nel workbench anche se sembra bloccato al 100%.
L'esecuzione dell'azione "Cattura dump heap" genera dump heap ottimizzati Hyades sull'host in cui è distribuita l'applicazione di destinazione. La directory di destinazione è controllata dall'impostazione di LOCAL_AGENT_TEMP_DIR nel file di configurazione di Agent Controller serviceconfig.xml. Per informazioni sull'ubicazione e la modifica di questo file, fare riferimento all'argomento della guida "Gestione di Agent Controller" in "Rilevamento e analisi dei problemi di runtime".
Se si riceve uno dei seguenti messaggi di errore, "Espansione dump heap non riuscito al punto: ...Lettura file" o "Analisi perdite non riuscita al punto: Creazione grafico di riferimento agli oggetti heap", verificare che Agent Controller sia in esecuzione sull'host di distribuzione e rieseguire il comando. Agent Controller assiste l'utente nella copia dei file dall'host di distribuzione alla directory del progetto nel workbench.
Se si verificano problemi durante l'analisi delle perdite, fare riferimento al file di log dell'analisi.
Durante l'analisi delle perdite, le informazioni di diagnostica vengono scritte nel file LeakAnalysis.log. Il file LeakAnalysis.log contiene l'output delle diverse operazioni eseguite durante l'analisi e indica l'esito positivo o negativo dell'esecuzione.
Il file LeakAnalysis.log è scritto nel progetto di creazione profili associato ai dati del profilo. Ad esempio, in Windows, <spazio_di_lavoro_utente>\ProfileProject\LeakAnalysis.log.
È possibile scrivere altre informazioni nel file di log utilizzando la proprietà di sistema RADLEAKREGIONDUMP. Aggiungere questa opzione a rationalsdp.ini:
VMArgs=-DRADLEAKREGIONDUMP=1
Il file rationalsdp.ini si trova nella directory di installazione di Rational Application Developer.
Se l'analisi delle perdite ha esito negativo con il seguente messaggio di errore nel file LeakAnalysis.log, 'JVMDUMP006I Elaborazione evento dump "uncaught", dettaglio "java/lang/OutOfMemoryError"' sarà necessario aumentare la dimensione heap del processo di analisi.
Per effettuare questa operazione, impostare l'attributo di sistema RADLEAKJVMSIZE di Rational Application Developer. Questo attributo controlla la dimensione heap JVM disponibile durante l'analisi.
Per impostare RADLEAKJVMSIZE, aggiungere questa opzione al file rationalsdp.ini:
VMArgs=-DRADLEAKJVMSIZE=valore
dove valore è il nuovo limite della dimensione heap, ovvero 1024M. Il valore predefinito è 512M. È necessario indicare se la dimensione heap viene espressa in megabyte o gigabyte (M o G).
Il file rationalsdp.ini si trova nella directory di installazione di Rational Application Developer.
Durante l'uso della JVM classica IBM con la funzione di creazione profili Analisi thread, la vista Thread della prospettiva Creazione profili e log, non mostra gli stati 'In attesa di blocco' di tutti i thread coinvolti in un deadlock. Questo succede a causa di informazioni mancanti nei dati raccolti. Soluzione: utilizzare la IBM J9 JVM aggiungendo -Xj9 nel campo Argomenti VM della scheda Argomenti della finestra profilo.
I file di origine Probekit i cui nomi contengono caratteri non ASCII non verranno elaborati correttamente. Utilizzare solo caratteri ASCII nei nomi dei file di origine Probekit.
Non utilizzare l'azione Probekit->Compila visualizzata nel menu di scelta rapida per i file *.probe, ma convertire il progetto contenente il file *.probe in un progetto Probekit ed utilizzare il meccanismo di generazione standard. Per convertire un progetto Java in un progetto Probekit, selezionare File->Nuovo->Altro e dalla sezione Creazione profili e log scegliere Converti progetti Java in progetti Probekit.
Non utilizzare caratteri non ASCII nei modelli per le specifiche di destinazione Probekit. I probe che contengono caratteri non ASCII nei modelli di destinazione non verranno elaborati correttamente.
Non utilizzare caratteri non ASCII durante l'aggiunta di modelli di metodo per l'opzione "Cancella dati di copertura quando..."
Se si immettono caratteri non ASCII nel pacchetto, nella classe o nei campi del metodo della finestra Aggiungi del modello del metodo, viene visualizzato un errore di input non valido e non sarà possibile chiudere la finestra.
Soluzione: utilizzare un carattere jolly (asterisco) invece dei caratteri non ASCII nel modello.
Nota: risolto nella Versione 6.0.0.1.
Un filtro EXCLUDE che comincia con un carattere jolly (asterisco), ad esempio "*foo", fa sì che le viste Statistiche copertura, Selezione copertura e Origine annotata non contengano dati. Soluzione: non utilizzare un filtro EXCLUDE che inizia con un carattere jolly.
Nota: risolto nella Versione 6.0.0.1.
Prima di raccogliere i dati di creazione profili, Agent Controller deve essere in esecuzione sulla macchina in cui si desidera raccogliere i dati. Nelle macchine RedHat Linux, Agent Controller richiede la patch libstdc++.so, libstdc++-libc6.2-2.so.3.
La funzione di analisi delle perdite non è disponibile per i programmi utente in esecuzione su IBM J9 JVM.
IBM J9 JVM crea file di heap con nomi simili a heapdump.20041012.093936.2192.dmp durante l'impostazione della variabile IBM_HEAPDUMP ed invia il segnale "kill -3" al processo Java in esecuzione. Questi file .dmp devono essere nuovamente elaborati eseguendo i comandi j9extract e jdmpview, quindi creare i dump heap IBM.
Il formato di questi dump heap non è uguale al formato dei dump heap generati dalla IBM jvm classica.
Se si importano più insiemi di dump heap con lo stesso nome di controllo in un progetto esistente, è possibile perdere i dati al successivo salvataggio del progetto o alla chiusura del workbench.
Per evitare questo problema, specificare una combinazione Progetto/Controllo univoca per ciascun insieme di heap importato.
Avviando e collegandosi a un server WAS, i tipi di creazione profili Probekit e Copertura livello riga non raccoglieranno i dati per le classi già caricate nella JVM di destinazione. Soluzione: per raccogliere i dati da queste classi, riavviare il progetto in cui sono contenute.
Durante la creazione profili delle applicazioni WAS per l'analisi delle perdite su Linux, i file optheap vengono inseriti nella seguente directory:
Per WAS 6.0, in runtimes/base_v6/profiles/default nella directory di installazione di Rational Application Developer
Per WAS 5.x, nella directory di installazione di Rational Application Developer.
Durante la creazione profili, tutti i caratteri a doppio byte verranno visualizzati come ???? nella vista Console.
Nota: risolto nella Versione 6.0.0.1.
Le impostazioni internazionali sull'host del workbench, sull'host di distribuzione remoto e sull'applicazione di destinazione, devono essere le stesse durante la raccolta dei dump heap ottimizzati Hyades.
Durante la creazione profili per l'analisi thread con IBM JVM 1.4.1 o versioni precedenti, la vista Thread nella prospettiva Creazione profili e log non mostra il proprietario thread dei controlli dei blocchi perché questi dati non vengono raccolti. Soluzione: Aggiornare a IBM JRE 1.4.2.
Durante la creazione profili in remoto su Solaris, un difetto nel JRE Sun 1.4.x impedisce la creazione profili per alcune combinazioni di funzioni, soprattutto quando la creazione profili di memoria o l'analisi thread sono attivate. Questo problema è descritto al sito Web di Sun, all'indirizzo: http://developer.java.sun.com/developer/bugParade/bugs/4614956.html Soluzione: utilizzare Sun JRE 1.4.2_06 o una versione successiva.
Visualizza il file Readme principale