Product:TIBCO Spotfire Analyst
Versions:
Summary:
This article explains regarding endless "internal server error" notifications while accessing analysis if there are too many pending read results.
Details:
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
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
Versions:
Summary:
This article explains regarding endless "internal server error" notifications while accessing analysis if there are too many pending read results.
Details:
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
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