Summary
When executing a Spotfire TERR/SERR Data Function, the following error occurs:
Could not execute function call 'data_function_name'
Unable to write data to the transport connection: An established connection was aborted by the software in your host machine.
This error typically occurs when the data being uploaded to the service exceeds the file size upload limit set in the TERR Service. The default limit is 100MB. When a data function sends data beyond this threshold, the service rejects the request, leading to the error.
Resolution
To resolve this issue, increase the file size upload limits by modifying the following properties in the TERR Service configuration:
1. Increase File Upload Limits:
spring.servlet.multipart.max-file-size (Default Value:100 MB):
The total file size for upload cannot exceed the value for this setting.
spring.servlet.multipart.max-request-size (Default Value:100 MB):
spring.servlet.multipart.max-request-size (Default Value:100 MB):
The total request size for a multipart file upload cannot exceed the value for this setting.
Recommended values:
spring.servlet.multipart.max-file-size=1000MB
spring.servlet.multipart.max-request-size=1000MB
If the error persists, consider increasing the limit further (e.g., 1GB)
2. Adjust Execution Timeout Settings:
spring.servlet.multipart.max-request-size=1000MB
If the error persists, consider increasing the limit further (e.g., 1GB)
2. Adjust Execution Timeout Settings:
engine.execution.timeout (Default Value:600):
The length of time, in seconds, that the TERR service allows the TERR engine to execute a request before stopping the execution with a timeout error.
engine.session.maxtime (Default Value:1800):
engine.session.maxtime (Default Value:1800):
The length of time, in seconds, that the TERR service allows the TERR engine session to exist before killing it.
To disable session pruning, set this value to -1.
Recommended values:
To disable session pruning, set this value to -1.
Recommended values:
engine.execution.timeout=3600
engine.session.maxtime=7200
3. Update the TERR Service Configuration:
1. Export the current TERR service configuration.
2. Edit the necessary properties in the custom.properties file.
3. Import the updated configuration back into the TERR service.
4. Restart the TERR service to apply the changes.
2. Edit the necessary properties in the custom.properties file.
3. Import the updated configuration back into the TERR service.
4. Restart the TERR service to apply the changes.
Note 1: These changes should be made in the TERR Service configuration, not in the Web Player service.
Note 2: Increasing these thresholds serves as a cap rather than an allocation of resources, meaning it does not inherently slow down or negatively impact the baseline processing speed of the TERR engine, other DXP files, or data functions. For example, a minor data function (such as 5 MB) continues to process only its own data size, completely unaffected by a higher ceiling like 1000 MB.
However, raising this ceiling permits the service to handle much larger files, which temporarily demands more CPU and memory resources while that specific function runs. If the hosting Node Manager for the TERR Service hits its capacity during the parsing of a massive file, concurrent or queued data functions will experience processing delays.
Furthermore, the Release Notes and Known Issues highlight a distinct risk regarding Java Heap Exhaustion:
Furthermore, the Release Notes and Known Issues highlight a distinct risk regarding Java Heap Exhaustion:
Note 3: At a certain point, the Java Heap size fails to handle very large files. The threshold for this behavior is dependent on the amount of RAM that Spotfire Service for TERR node has at its disposal. When the Java Heap Size is exceeded, the following error message is displayed:
Error from Remote Service: Internal Server Error (500) - java.lang.OutOfMemoryError: Java heap space.
Reference
1. File Size Upload Limit:
https://docs.tibco.com/pub/terrsrv/1.17.2/doc/html/TIB_terrsrv_install/_shared/install/topics/file_size_limit_for_spring_multipart_file.html
2. Engine Timeout:
https://docs.tibco.com/pub/terrsrv/1.17.2/doc/html/TIB_terrsrv_install/_shared/install/topics/engine_timeout.html
3. Configuring the Service:
https://docs.tibco.com/pub/terrsrv/1.17.2/doc/html/TIB_terrsrv_install/_shared/install/topics/configuring_the_service.html
https://docs.tibco.com/pub/terrsrv/1.17.2/doc/html/TIB_terrsrv_install/_shared/install/topics/file_size_limit_for_spring_multipart_file.html
2. Engine Timeout:
https://docs.tibco.com/pub/terrsrv/1.17.2/doc/html/TIB_terrsrv_install/_shared/install/topics/engine_timeout.html
3. Configuring the Service:
https://docs.tibco.com/pub/terrsrv/1.17.2/doc/html/TIB_terrsrv_install/_shared/install/topics/configuring_the_service.html
Comments
0 comments
Article is closed for comments.