If is set timeout to 10000 msec, it will timeout at 10s. My problem is that i cannot change the timeout higher than 60000.( It will still timeout at 60s if I set 100s.)
Further, I have set the project property client timeout to 100, saved and re-launched the client. Still no timeout higher than 60s. (see picture below).
Im currently using 8.06, and is pulling the history through a remote history provider (gateway network).
Any ideas anyone?
Not sure @pturmel, It looks like the timeout comes from the ignition connector based on the message below…
Further, The query size is only at 32000 records, and normally we are limited to 150k from other systems. To begin with, we can atleast state that the Ignition driver is a bit slow.
com.inductiveautomation.metro.api.ex.TimeoutExpiredException: TimeoutExpiredException[queueId=service_TagHistoryService, targetIntent=_services.invoke_|2, msgData=com.inductiveautomation.ignition.gateway.sqltags.history.distributed.TagHistoryService#queryTagHistory([interface com.inductiveautomation.ignition.common.sqltags.history.TagHistoryQueryParams])]
at com.inductiveautomation.metro.impl.queues.StandardQueue.processTimeouts(StandardQueue.java:202)
at com.inductiveautomation.metro.impl.queues.StandardQueue.lambda$maybeScheduleTimeoutChecker$1(StandardQueue.java:184)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
I have a feeling there is a bug in the client read timeout in Ignition 8. If I run queryTagHistory() from a reporting scheduled script, it might run for 5 minutes without timeout. So maybe there is something about the client / designer scope.
Oh… Thats to bad. Thanks for the reply anyways!
I will have to wait for the patch, and then for sepasoft OEE to release their stable build for that version
I also wonder if there is truth to if it is running on client scope vs gateway scope. I'll report back.
One more thing that is very odd is if it times out it will throw an exception that will hault the entire script event if the system.tag.queryTagHistory() is in a try: except:
for i in range(0,2):
try:
# The process will fail at the line directly below here in the try() statement.
res= system.tag.queryTagHistory(
paths = tagPaths,
startDate = startDate,
endDate = endDate,
returnSize = 1,
aggregationMode = aggregationMode,
columnNames = columnNames,
timeout = 900000,
)
successFlag = True
break
except Exception as e:
import time
loggerName = "Trends.TagHistory.aggregateTags()"
logger = system.util.getLogger(loggerName)
logString = """
%s Failed with an Exception of %s for tagPaths %s and startDate = %s endDate = %s and aggregation = %s
"""%(loggerName,e,tagPaths,startDate,endDate,aggregationMode)
print logString
logger.info(logString)
time.sleep(10)