| Products | Versions |
|---|---|
| Spotfire Analyst | All Versions |
The following error is seen in the log file:
"org.apache.cxf.interceptor.Fault: Unmarshalling Error: Maximum Number of Child Elements limit (50000) Exceeded"
This error is coming from the third-party 'org.apache.cxf.stax.maxChildElements' being set to 50000. Once the comparison expression exceeds 50000 values, it will contain more than 50000 child elements and throw the exception.
All Supported OS
To resolve this issue:
1) Go to the location '<Spotfire_Install_Dir>\tomcat\bin' on the Spotfire Server machine.
2) Edit the service.bat file.
3) At the end of the file, under the JVM options, add -Dorg.apache.cxf.stax.maxChildElements=1000000 as shown below:
--JvmOptions "-Dcatalina.home=%CATALINA_HOME%;-Dcatalina.base=%CATALINA_BASE%;-Djava.endorsed.dirs=%CATALINA_HOME%\endorsed;-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties;-XX:+DisableExplicitGC;-Dcom.sun.management.jmxremote;-Dorg.apache.catalina.session.StandardSession.ACTIVITY_CHECK=true;-Dorg.apache.cxf.stax.maxChildElements=1000000" ^
4) Open a command prompt as Administrator and run the following commands.
a). <installation dir>/tomcat/bin/service.bat remove
b). <installation dir>/tomcat/bin/service.bat install
Restart the Spotfire service.
5) Log in to the client and run the on-demand query again by marking 50 K rows.
When we mark more than 50K rows to run an on-demand table in Spotfire, it throws an exception "Failed to execute data query".