Kbase P112498: An error occurs when sending large XML documents as parameters through an OpenEdge Web Service
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  4/3/2009 |
|
Status: Verified
SYMPTOM(s):
An error occurs when sending large XML documents as parameters through an OpenEdge Web Service
Web service operation <operation-name> generated a SOAP Fault. SOAP faultstring is: An error was detected while executing the Web Service request. (10893) (11506)
The WSA crashes with a stack trace when passing large XML documents as parameters
error deleting session reference = com.progress.open4gl.dynamicapi.Session
com.progress.open4gl.Open4GLException: Disconnect failure: NULL. (7205)
Error in SOAP request execution: java.lang.OutOfMemoryError: Java heap space:Java heap space (10926)
The problem does not occur after decreasing the size of the XML document
Using RPC/Encoded for the OpenEdge Web Service
FACT(s) (Environment):
OpenEdge 10.x
Web Services
Tomcat 4.1
Tomcat 5.5
All Supported Operating Systems
CAUSE:
The JVM which is used by Tomcat has run out of memory.
FIX:
You need to increase the Java heap size of the JVM which is being used by Tomcat.
Tomcat Windows Service:
When using the Tomcat 4.1 Windows service, you need to add/change the following Strings to the HKLM\System\CurrentControlSet\Services\Apache Tomcat 4.1\Parameters registry key, for example:
"JVM Option Count" = 6
"JVM Option Number 4" = -Xms8m
"JVM Option Number 5" = -Xmx256m
Note: You may need different values depending on your initial amount of parameters.
When using the Tomcat 5.5 Windows service, you need to add/change the following DWORD decimal values of the HKLM\Software\Apache Software Foundation\Procrun 2.0\tomcat5\Parameters\Java registry key, for example:
JvmMs = 8
JvmMx = 256
You can also use the "Configure Tomcat" shortcut and specify the amount of memory in the Java tab for the "Initial memory pool" and "Maximum memory pool".
Note: Refer to the Tomcat documentation on how to increase the Java heap size when not using the Window service.
On UNIX:
Set in catalina.sh the JAVA_OPTS environment variable.
Could be: -Xms64m -Xmx512m
Example:
JAVA_OPTS="-Xms64m -Xmx512m"; export JAVA_OPTS