Easy Chart Time Error

Hey guys,

I’ve been running into a problem with the Easy charts faulting out and not working again until you close the window and reopen it. It seems to happen if the back and forth arrows are clicked rapidly to move forward or backward in time. The error is strange, it says that the time requested is after a previous time but the SQL query looks ok… Is there a setting fix for this, like delaying the actual query for half a second or something after quick clicks?

Running Ignition version 7.8.3 (b2016061017), this happens on multiple versions of Java from 6 to 8.

ERROR [PMIEasyChart-AWT-EventQueue-2] Error running chart query. java.lang.Exception: Error running query: TagHistory(paths=[prov:default:/tag:brine chillers/brine chill refrig 3260/brine chiller 9 inlet temperature, prov:default:/tag:brine chillers/brine chill refrig 3260/brine chiller 9 outlet temperature, prov:default:/tag:brine chillers/brine chill fill 1075/chiller 9/brine return temp, prov:default:/tag:brine chillers/brine chiller flows/brine chiller 9 flow, prov:default:/tag:brine chillers/brine chill fill 1075/chiller 9/tank level inches], start=Tue Jul 26 17:45:44 EDT 2016, end=Wed Jul 27 05:45:44 EDT 2016, flags=64)@0ms On: Standard Chart.Root Container.Easy Chart at com.inductiveautomation.factorypmi.application.gateway.QueryManager$QueryExecutor.run(QueryManager.java:317) at java.lang.Thread.run(Unknown Source) Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Requested timestamp is previous to an already requested time. All requests must go forward in time. Received '1469573144084' after '1469573425869' at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:327) at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:301) at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.runTagHistoryQuery(GatewayInterface.java:710) at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.runTagHistoryQuery(GatewayInterface.java:679) at com.inductiveautomation.factorypmi.application.gateway.GWITagHistoryProvider.query(GWITagHistoryProvider.java:16) at com.inductiveautomation.ignition.common.sqltags.history.cache.StandardCacheBucket.loadData(StandardCacheBucket.java:229) at com.inductiveautomation.ignition.common.sqltags.history.cache.StandardCacheBucket.getData(StandardCacheBucket.java:194) at com.inductiveautomation.ignition.common.sqltags.history.cache.SubCache$BucketHit.getData(SubCache.java:224) at com.inductiveautomation.ignition.common.sqltags.history.cache.SubCache.getData(SubCache.java:160) at com.inductiveautomation.ignition.common.sqltags.history.cache.TagHistoryCache.query(TagHistoryCache.java:254) at com.inductiveautomation.factorypmi.application.gateway.TagHistoryQuery.execute(TagHistoryQuery.java:34) at com.inductiveautomation.factorypmi.application.gateway.QueryManager$Query.execute(QueryManager.java:690) at com.inductiveautomation.factorypmi.application.gateway.QueryManager$Query.access$500(QueryManager.java:663) at com.inductiveautomation.factorypmi.application.gateway.QueryManager$QueryExecutor.run(QueryManager.java:314) ... 1 more Caused by: java.lang.IllegalArgumentException: Requested timestamp is previous to an already requested time. All requests must go forward in time. Received '1469573144084' after '1469573425869' at com.inductiveautomation.ignition.gateway.sqltags.history.query.processing.Interpolator.getValueAt(Interpolator.java:63) at com.inductiveautomation.ignition.gateway.sqltags.history.query.columns.DefaultHistoryColumn.finishAggregationWindow(DefaultHistoryColumn.java:146) at com.inductiveautomation.ignition.gateway.sqltags.history.query.columns.DefaultHistoryColumn.getValue(DefaultHistoryColumn.java:180) at com.inductiveautomation.ignition.gateway.sqltags.history.query.DelegatingHistoryNode.getValue(DelegatingHistoryNode.java:41) at com.inductiveautomation.ignition.gateway.sqltags.history.query.HistoryWriter.commitRows(HistoryWriter.java:348) at com.inductiveautomation.ignition.gateway.sqltags.history.query.HistoryWriter.finalizeWriter(HistoryWriter.java:268) at com.inductiveautomation.ignition.gateway.sqltags.history.query.HistoryWriter.execute(HistoryWriter.java:230) at com.inductiveautomation.ignition.gateway.sqltags.SQLTagsManagerImpl.queryHistory(SQLTagsManagerImpl.java:1068) at com.inductiveautomation.ignition.gateway.project.ProjectSettingsCache$ProjectDefaultTagManagerFacade.queryHistory(ProjectSettingsCache.java:601) at com.inductiveautomation.ignition.gateway.servlets.gateway.functions.QueryTagHistory.invoke(QueryTagHistory.java:127) at com.inductiveautomation.ignition.gateway.servlets.Gateway.doPost(Gateway.java:345) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at com.inductiveautomation.ignition.gateway.bootstrap.MapServlet.service(MapServlet.java:85) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:837) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1160) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1092) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) at org.eclipse.jetty.server.Server.handle(Server.java:518) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:246) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:156) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) at java.lang.Thread.run(null)

This seems to be something with the client history cache system. If I check the “Bypass Client History Cache” option in the easy chart then I stop getting this error. FYI.

2 Likes