Contents

Introduction

Problem

Solution

Increase Virtual Memory

Contact Developer Services

Frequently Asked Questions

Introduction

This document describes the problem where the Voice XML (VXML) server runs out of memory and reports:

java.lang.OutOfMemoryError: PermGen space

Problem

In some cases, the VXML Server/Tomcat crashes and displays an OutOfMemoryError message.

These snippets are seen in the VXML server application error logs.

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

Solution

When you run Customer Voice Portal (CVP) and come across an OutOfMemoryError message, refer to these steps for the workaround.

Increase Virtual Memory

In many cases, an increase of the virtual memory helps. In order to increase the virtual memory in CVP Versions 8.5 and 9.0, complete these steps:

Windows 2003

1. Navigate to:

Start > Run > Regedit

HKLM\SOFTWARE\Apache Software Foundation\Procrun2.0\VXMLServer\

Parameters\Java\Options

2. Add the "-XX:MaxPermSize=256M" registry key in order to increase the Virtual Memory PermSpace.

Windows 2008

1. Navigate to:

Start > Run > Regedit

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun2.0\VXMLServer\

Parameters\Java\Options

2. Add the "-XX:MaxPermSize=256M" registry key in order to increase the Virtual Memory PermSpace.

Refer to the Multiple Vulnerabilities in Cisco Unified Customer Voice Portal Software Security Advisory for more information.

Contact Developer Services

Beyond these fixes, VXML application debugs should be handled by the VXML application developer because the Cisco Technical Assistance Center has limited resources to analyze the application flow involved. If you have followed the procedure in this document and the source of excessive memory usage cannot be found, contact developer services in order to review the application.

Frequently Asked Questions

What is the best way to monitor VXML application memory consumption?

There are several tools available for this, such as VisualVM, JProfiler, and Yourkit. Any of the profilers that assess VXML applications provide details into which data structures accumulate and do not release memory, which eventually leads to an OutOfMemory condition.

How often is garbage collection kicked off on a (CVP)/VXML server?

When garbage collection runs depends on the system load. A general rule is that a high-load system or a system with a small amount of memory encounters garbage collection often whereas a low-volume system or one with a large amount of memory runs garbage collection less frequently.

How does garbage collection decide what memory to reclaim from the applications?

This is assessed by the Java Virtual Machine (JVM). Any object becomes a candidate for garbage collection once all references to it are discarded.