Introduzione
In questo documento viene descritto il problema relativo all'esaurimento della memoria del server VXML (Voice XML) e viene segnalato:
java.lang.OutOfMemoryError: PermGen space
Problema
In alcuni casi, il server VXML/Tomcat si blocca e visualizza un messaggio OutOfMemoryError.
Questi snippet vengono visualizzati nei log degli errori dell'applicazione server VXML.
Exception in thread "Message Buffering Thread Error with admin
application update,xx/xx/2013 xx:xx:xx.xxx, The error was:
There was a problem loading classes local to the application
<application Name>. The root cause was:
java.lang.OutOfMemoryError: PermGen space
com.audium.server.AudiumException: There was a problem loading
classes local to the application <applicationname>
.at com.audium.server.controller.AudiumServerConfiguration.
loadLocalClasses (AudiumServerConfiguration.java:1405)
at com.audium.server.controller.AudiumServerConfiguration.
<init>(AudiumServerConfiguration.java:212)
Caused by: java.lang.OutOfMemoryError: PermGen space
Soluzione
Quando si esegue Customer Voice Portal (CVP) e viene visualizzato un messaggio OutOfMemoryError, fare riferimento a questi passaggi per la soluzione.
Aumento della memoria virtuale
In molti casi, un aumento della memoria virtuale può essere utile. Per aumentare la memoria virtuale in CVP versioni 8.5 e 9.0, attenersi alla seguente procedura:
Windows 2003
- Accedere a:
Start > Esegui > Regedit
HKLM\SOFTWARE\Apache Software Foundation\Procrun2.0\VXMLServer\
Parametri\Java\Opzioni
- Aggiungere la chiave del Registro di sistema "-XX:MaxPermSize=256M" per aumentare la memoria virtuale PermSpace.
Windows 2008
- Accedere a:
Start > Esegui > Regedit
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun2.0\VXMLServer\
Parametri\Java\Opzioni
- Aggiungere la chiave del Registro di sistema "-XX:MaxPermSize=256M" per aumentare la memoria virtuale PermSpace.
Per ulteriori informazioni, fare riferimento a Multiple Vulnerabilities in Cisco Unified Customer Voice Portal Software Security Advisory.
Contatta servizi per sviluppatori
Oltre a queste correzioni, i debug dell'applicazione VXML devono essere gestiti dallo sviluppatore dell'applicazione VXML, in quanto il Technical Assistance Center di Cisco dispone di risorse limitate per l'analisi del flusso dell'applicazione interessato. Se è stata seguita la procedura descritta in questo documento e non è possibile individuare l'origine di un utilizzo eccessivo della memoria, contattare gli sviluppatori per rivedere l'applicazione.
Domande frequenti
Qual è il modo migliore per monitorare l'utilizzo della memoria delle applicazioni VXML?
Sono disponibili diversi strumenti, ad esempio VisualVM, JProfiler e Yourkit. Uno dei profiler che valutano le applicazioni VXML fornisce dettagli in cui le strutture di dati si accumulano e non rilasciano memoria, il che porta a una condizione OutOfMemory.
Con quale frequenza viene avviata la Garbage Collection su un server (CVP)/VXML?
L'esecuzione del processo di Garbage Collection dipende dal carico del sistema. Una regola generale è che un sistema con carichi elevati o un sistema con una quantità ridotta di memoria incontra spesso il processo di garbage collection, mentre un sistema con volumi bassi o un sistema con una grande quantità di memoria esegue il processo di garbage collection con una frequenza minore.
In che modo la procedura di Garbage Collection determina la memoria da recuperare dalle applicazioni?
Questa condizione viene valutata da Java Virtual Machine (JVM). Qualsiasi oggetto diventa un candidato per la procedura di Garbage Collection dopo che tutti i riferimenti ad esso sono stati eliminati.