Product: TIBCO Spotfire®
"TerrServiceClient" vs "LocalFunctionClient" vs "RemoteFunctionClient": how an error's stack trace shows where the data function's TERR script was sent for processing.
"TerrServiceClient" vs "LocalFunctionClient": how an error's stack trace shows where the data function's TERR script was sent for processing.
Starting with Spotfire 10.0.0, a data function error message that starts with "TIBCO Enterprise Runtime for R returned an error" might not be coming from the Spotfire Analyst desktop client's local built-in TERR engine.
The key indicator is in the stack trace's first "at" clause.
When the error comes from the new TERR Service (TERRSRV) that was introduced in Spotfire Server 10.0.0, the string "TerrServiceClient" appears in the stack trace's first "at" clause.
When the error comes from the Spotfire desktop client's own built-in local TERR engine, the string "LocalFunctionClient" appears in that first "at" clause.
The following is an example of a data function error and stack trace that is coming from Spotfire Server's new TERR Service (TERRSRV):
________________________________________________________________
Could not execute function call.
TIBCO Enterprise Runtime for R returned an error: 'Error: restricted call to Native[dir.exists]'.
at Spotfire.Dxp.Data.DataFunctions.Executors.TerrServiceClient.RunFunction(DataFunctionInvocation invocation)
at Spotfire.Dxp.Data.DataFunctions.Executors.SplusFunctionExecutor.<ExecuteFunction>d__12.MoveNext()
at Spotfire.Dxp.Data.DataFunctions.DataFunctionExecutorService.<ExecuteFunction>d__3.MoveNext()
________________________________________________________________
For comparison, the following is an example of an error message and stack trace from a data function whose TERR script was sent to the Spotfire desktop client's own built-in local TERR engine for processing:
________________________________________________________________
Could not execute function call.
TIBCO Enterprise Runtime for R returned an error: 'Error in library(MASS) : there is no package called 'MASS'
eval(expr, envir, enclos)
eval(expr, envir, enclos)
library(MASS)
stop("there is no package called '", package, "'")'.
at Spotfire.Dxp.Data.DataFunctions.Executors.LocalFunctionClient.OnExecuting()
at Spotfire.Dxp.Data.DataFunctions.Executors.AbstractFunctionClient.<RunFunction>d__0.MoveNext()
at Spotfire.Dxp.Data.DataFunctions.Executors.SPlusFunctionExecutor.<ExecuteFunction>d__0.MoveNext()
at Spotfire.Dxp.Data.DataFunctions.DataFunctionExecutorService.<ExecuteFunction>d__6.MoveNext()
________________________________________________________________
For comparison, the following is an example of an error message and stack trace from a data function whose TERR script was sent out via URL to a TIBCO Spotfire Statistics Services (TSSS) instance for processing:
________________________________________________________________
Could not execute function call.
TIBCO Spotfire Statistics Services returned an error: 'Error: restricted call to find.package for package data.table
eval(expr, envir, enclos)
eval(expr, envir, enclos)
library(data.table)
find.package(package, lib.loc, verbose = verbose, quiet = TRUE)'.
at Spotfire.Dxp.Data.DataFunctions.Executors.RemoteFunctionClient.OnExecuting()
at Spotfire.Dxp.Data.DataFunctions.Executors.AbstractFunctionClient.<RunFunction>d__0.MoveNext()
at Spotfire.Dxp.Data.DataFunctions.Executors.SPlusFunctionExecutor.<ExecuteFunction>d__0.MoveNext()
at Spotfire.Dxp.Data.DataFunctions.DataFunctionExecutorService.<ExecuteFunction>d__6.MoveNext()
________________________________________________________________
The online docs page at the following URL explains the differences among TERR, the TERR Service, and TIBCO Spotfire Statistics Services:
https://docs.tibco.com/pub/terrsrv/1.1.0/doc/html/GUID-0F0FDB54-4C90-43CC-BD74-C3F70E6EC27B.html
The following public knowledge base article provides a very brief introduction to the TERR Service:
Comments
0 comments
Article is closed for comments.