Products | Versions |
---|---|
Spotfire Server | All |
Beyond those technical issues, performance related Information Services issues may also be caused by unrealistic expectations of performance. For example, where the Information Link execution time is compared to an unrelated or different benchmark, or compared to a business requirement which does not fully consider the technical details (amount of data being accessed, network speeds, etc).
First, find the actual execution times of the Information Link as seen in the TIBCO Spotfire Server’s sql.log (<TSS Installation Directory>\tomcat\logs\). Here are 3 key log entries:
(1) The query being executed:2016-10-03T15:06:38,331+0200 [*pool-6-thread-2, ali, #13, #62*]: [data-source="mssql2k12"] SELECT B1."NAME" AS "NAME", B1."AT_BATS" AS "ATBATS", B1."HITS" AS "HITS", B1."TEAM" AS "TEAM" FROM "spotfire_demodata"."dbo"."BASEBALL" B1(2) The Execution time, which is the actual time to execute the Information link query on data source and have the data returned to TSS:
2016-10-03T15:06:38,331+0200 [*pool-6-thread-2, uname, #13, #62*]: Information Link 'MyInfoLink' (e9f667a4-3325-4910-82ca-79b2955442e1) executed successfully, time: 1.482 seconds
(3) The Job Closed time, which is the total time from when the query starts executing until the client has received all the result data. This is inclusive of the prior the execution time:
2016-10-03T15:06:38,783+0200 [*Thread-16, uname, #13, #62*]: Information Link 'MyInfoLink' (e9f667a4-3325-4910-82ca-79b2955442e1) job closed, time: 1.934 seconds
Second, evaluate the execution time and job closed time with the expected execution time and how those expectations were set:
The design of the benchmark test is very important. Note that comparing the execution time from a 3rd party client on your local client machine which connects directly to your data source is not the same as opening a report which uses Information Links from the Analyst client on your local machine (since the Information Link is executed on the TIBCO Spotfire Server, and not from the local client machine).
The best test to use when analyzing Information Link performance is:
Then compare of the result of the 3rd party client test to the ”executed successfully” and "job closed" log entries in the sql.log file mentioned above.
Based on this comparison, there are 4 primary potential outcomes which are covered in this article:
<sql-runtime> com.spotfire.ws.im.ds.sql.mysql.MySQLDriverSQLRuntime </sql-runtime>This is an example of error as seen in the server.log:
ERROR 2012-05-17 14:19:23,326 [*pool-2-thread-10, spf_admin, #32*] ws.dat.AbstractOperator: Start job failed. com.spotfire.ws.dat.OperatorException[faultCode=SOAP-ENV:Server.SQLFailure; faultString=Failed to execute query: Ran out of memory retrieving query results.; message=com.spotfire.ws.im.IMException: Failed to execute query: Ran out of memory retrieving query results.;The resolution to this is to edit the data source template and return the SQL runtime section to start streaming again. Alternatively, although not recommended, if this runtime section was removed on purpose, increase the JvmMx max memory to accommodate the entire data set.
In this case, the "executed" time may be quick, but the "job closed" time is significantly longer than the "executed" time indicating there is a lot of time spent in the transfer of the data from the TSS to the client. Here are a few steps to take:
DEBUG 2016-06-08T02:08:12,139-0500 [*pool-3-thread-57, user, #10300*] ws.dat.Job$GetDataTask: Waiting for up to 1 more second for data block to be consumed from full data block queueThis log entry is seen when data blocks get created with data on the TSS, and the TSS is waiting for the client to read them before they can get purged. When nothing reads them, and the TSS keeps creating new data blocks as data is read from the database, the limit of data blocks per job is hit. It does this until the queue has free spots, or until it times out.
If the HTTP transfer is significantly slower, then contact your network administrator for assistance in investigating and improving the performance.
10.40.0.220;;user;2016-08-10T20:21:12,366-0400;Content loaded;reportName;spotfire.dxp;19223314;e6a54d5f-08f6-426c-a6d9-224a13a85492 ;;;2016-08-10T20:21:26,162-0400;Metadata loaded;sourceName;spotfire.datasource;1056;8f1f7096-458e-4511-9c11-487ccef249cc ;;;2016-08-10T20:22:26,161-0400;Metadata loaded;sourceName;spotfire.datasource;1056;8f1f7096-458e-4511-9c11-487ccef249ccPossible solutions for this: