Date Posted:
Product: TIBCO Spotfire®
Product: TIBCO Spotfire®
Problem:
Information link with multiple prompts and large data errors out with "The task could not be completed. Communication error in undefined" on the TIBCO Spotfire Web Player or Automation Services
Solution:
When opening a report in the TIBCO Spotfire Web Player based on an information link which has a large number of prompts or data, the data table may fail to load and you will see the following error in the server.log file:
ERROR 2017-07-17T11:03:58,473-0400 [user@domain, #12345, #111222] spotfire.rs.RestExceptionHandler: Intercepted exception in request to /wp/render/b1MOFe-Yv0vJCEHfFj/AjaxService.asmx/ValidatePrompt java.io.IOException: failed to process request at com.spotfire.server.wp.router.WebServiceHttpProxyRequestHandler.handleRequest(WebServiceHttpProxyRequestHandler.java:217) at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:51) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ...... Caused by: org.springframework.web.client.HttpServerErrorException: 500 Worker error id: e9bc8a4610a34b77a9689dc6ca6b4960 (The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://schemas.spotfire.tibco.com/worker/Analysis/Service/650:serializedPromptModel. The InnerException message was 'There was an error deserializing the object of type System.String. The maximum string content length quota (262144) has been exceeded while reading XML data. This quota may be increased by changing the MaxStringContentLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader.'. Please see InnerException for more details.) at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:94) at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:667)
The above error is seen if the Web Player exceeds a maximum size of 256kb for request and response messages sent to and from the service. In the "Spotfire.Dxp.Worker.Web.config" you have a setting on the server limiting the maximum size of message that the Web Player accepts. The default is 256kb, so increasing the size to 2560 (for example) will resolve the issue.
Update the maxReaderQuotasSizeKb setting value in the Spotfire.Dxp.Worker.Web.config per the instructions found here: Manually editing the service configuration files
Details:
1). First go to:
<TSS install dir>\tomcat\bin\and make sure that the "config" folder is deleted or backed up somewhere else.
2). On the command line, export the service configuration that you want to modify from Spotfire Server by using the export-service-config command. Specify the service's capability and the deployment area, and optionally the configuration name.
For example, exporting the "Default" Spotfire Web Player Services configuration that is in the Production deployment area:
export-service-config --capability=WEB_PLAYER --deployment-area=Production
The configuration files are then exported. By default, these files are located in the <TSS install dir>\tomcat\bin\config\root directory.
3). Make the following changes to Spotfire.Dxp.Worker.Web.config:
From Spotfire.Dxp.Worker.Web.config:
- Change: maxReaderQuotasSizeKb="256"
- To: maxReaderQuotasSizeKb="2560" (The maxReaderQuoteSizeKb parameter has a potential range of 16-16384)
<application checkUserSessionTimeoutIntervalSeconds="120" userSessionTimeout="00:20:00" maxConcurrentWebServiceCallsPerCore="16" maxReceivedMessageSizeMb="1024" maxReaderQuotasSizeKb="2560" requestTimeoutSeconds="3600"/>
Save the changes to file.
4). In the command-line interface, import the configuration file back into the Spotfire Server and name the configuration by using the import-service-config command.
For example:
import-service-config --config-name=WebPlayerConfiguration
5). In the command-line interface, assign the created Web Player service configuration to the Spotfire Server to make it possible to use for the service:
For example :
set-service-config --service-id=value –config-name=WebPlayerConfiguration
Now opening the information link should be able to successfully open in an analysis file in the Web Player.
Note:
- This same error can also be seen with Automation Services and resolved with the same configuration change.
- The maxReaderQuoteSizeKb parameter has a range of 16-16384. A value outside of this range will prevent the service from starting correctly.
Comments
0 comments
Article is closed for comments.