Product: TIBCO Spotfire®
Information Link execution takes longer than expected to close due to full data block queue
When executing an Information Link, the Spotfire Server queries the data source and creates data blocks of the resulting data and then waits for the client to read those data blocks before they can be purged. When the client does not read the blocks, the Spotfire Server will continue to create new data blocks until the limit of data blocks per job is hit. It will continue to do this while the queue has free spots or until the job times out.
In the case where the client cannot consume the blocks fast enough, the following log entries will be seen in the server.log on the Spotfire Server:
DEBUG 2016-06-08T02:08:12,139-0500 [*pool-3-thread-57, user, #10300*] ws.dat.Job$GetDataTask: Waiting for upto 1more second for data block to be consumed from full data block queue
One possible solution for this is to increase the maximum size of the data block queue. The max amount of blocks can be changed in the exported Spotfire Server configuration.xml file under:
<!-- Maximum number of queued (not yet consumed by client) data blocks per job. --> <data-block-queue-size>10</data-block-queue-size>For example, this setting can be increased to 50 which means an Information Link is allowed to take 500MB of memory instead of 100MB during runtime. Save the updated configuration.xml, import that to the database and restart your TIBCO Spotfire Server. See if the Information Link execution can succeed.
Note that the Tomcat process may require more RAM with an increased data-block-queue-size since the Information Link can occupy more memory during runtime. If needed, the JvmMx can be increased according to the following documentation.
- Modifying the virtual memory (server running as Windows service)