Endless "internal server error" notifications while accessing analysis files in Spotfire

Endless "internal server error" notifications while accessing analysis files in Spotfire

book

Article ID: KB0071508

calendar_today

Updated On:

Products

Spotfire Analyst

Description

The method WaitHandle.WaitAny used in WebViewDecoupling.PollResults has a max limit of 64 handles. If there are too many pending read results this will throw endlessly.

Following endless notifications pop-up in analyst:

ERROR Spotfire.Dxp.Framework.ApplicationModel.NotificationService [(null)] - An error occurred  /analysispath/analysisname;XmlHttpRequest failed. Internal Server ErrorRead error (-1): {"viewId":null,"method":"__PollPendingReadResults","args":"
...
WARN  Spotfire.Dxp.Application.WebView.WebServer [(null)] - Local web server error. Failed to handle request.
System.NotSupportedException: The number of WaitHandles must be less than or equal to 64.



You may see the following in analyst developer tools:

XMLHttpRequest: \{"readyState":4,"responseText":"","status":500,"statusText":"Internal Server Error"}
ir @ ?package=js:14:8009/AjaxService.asmx/Read:1          
Failed to load resource: the server responded with a status of 500 (Internal Server Error)?package=js:14 XmlHttpRequest failed. Internal Server Error

Issue/Introduction

This article explains regarding endless "internal server error" notifications while accessing analysis if there are too many pending read results.

Environment

All

Resolution

Issue can be addressed by applying the latest hotfixes for 12.0.x, 12.3.x and in service pack 12.0.4 and 12.4.

We do however, have a work-around for analyst and webplayer in case applying hotfix is not an option.

For Analyst Client:

There is a setting called "WebViewDecouplingLongPollingDurationMilliseconds" which if set to -1 should disable the problematic code.
The setting can be found in Spotfire.Dxp.Main.dll.config located at ""C:\Program Files (x86)\TIBCO\Spotfire\**.*.*\Modules\Spotfire DXP Forms_56.0.****.****" for analyst. Search below:

<setting name="WebViewDecouplingLongPollingDurationMilliseconds" serializeAs="String">
        <value>-1</value>
      </setting>

For Web Player:

You can update the setting WebViewDecouplingLongPollingDurationMilliseconds in service configuration files per the following documented steps:

1. Doc: Manually editing the service configuration files
https://docs.tibco.com/pub/spotfire_server/latest/doc/html/TIB_sfire_server_tsas_admin_help/server/topics/manually_editing_the_service_configuration_files.html

In Step 3 of the above referenced process ("3. Edit the exported configuration files in a text editor or XML editor"), edit the ‘Spotfire.Dxp.Worker.Host.exe.config’ with the following

2.Add in the following setting directly in the Spotfire.Dxp.Application.Properties.Settings section.

<setting name="WebViewDecouplingLongPollingDurationMilliseconds" serializeAs="String">
    <value>-1</value>
</setting>

3.Save the file

Additional Information

Doc: Manually editing web player configuration(in link automation service is being edited, please mention WEB_PLAYER for editing web player service):