Edge - error synchronizing data

I have Ignition Edge connected with Full gateway using gateway network.
On edge i configured data synch module pointing to full gateway (connection ok) and its historian name (for simplicity i used SQL Lite internal database). I also configured service security to allow storage in all area as open as possible.
Despite all of this in Datasync module current synch id is still 0. and in error logs in Edge i am getting an entry error synchronizing data (pasted below).
Can you provide me any other pointers or troubleshooting steps as this issue is becoming very frustrating for me :frowning:

at java.base/java.util.concurrent.CompletableFuture.reportGet(Unknown Source)

at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)

at com.inductiveautomation.gateway.tags.history.distributed.client.RemoteHistorianSink.executeSend(RemoteHistorianSink.java:276)

at com.inductiveautomation.gateway.tags.history.distributed.client.RemoteHistorianSink.sendScanclassHistorySet(RemoteHistorianSink.java:281)

at com.inductiveautomation.gateway.tags.history.distributed.client.RemoteHistorianSink.storeData(RemoteHistorianSink.java:239)

at com.inductiveautomation.gateway.tags.history.tsdb.localhistorian.InternalHistorianProvider$HistorianSyncable.sync(InternalHistorianProvider.java:215)

at com.inductiveautomation.ignition.gateway.sync.SyncManagerImpl$SyncableRunner.sync(SyncManagerImpl.java:175)

at com.inductiveautomation.ignition.gateway.sync.SyncManagerImpl$SyncableRunner.run(SyncManagerImpl.java:159)

at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$SelfSchedulingRunner.run(BasicExecutionEngine.java:504)

at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$TrackedTask.run(BasicExecutionEngine.java:587)

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)

Caused by: com.inductiveautomation.metro.api.ex.TimeoutExpiredException: TimeoutExpiredException[queueId=default, targetIntent=th_storage, msgData=systemId: "Ignition-WIN-USRKS6KU047" providerId: "edge" tags { tagPath: "[edge]test1" timesrc: VALUE } values { key: 0 value { values { tstamp: 1667411790633 quality: 192 ival: 0 } } } targetHistorian: "SQL_Lite" ]

at com.inductiveautomation.metro.impl.queues.StandardQueue.processTimeouts(StandardQueue.java:227)

at com.inductiveautomation.metro.impl.queues.StandardQueue.lambda$maybeScheduleTimeoutChecker$1(StandardQueue.java:209)

Don't use SQLite for history. While it's fine for a small, throwaway test case, such things grow into production and then you are screwed.

Break this bad habit. Install PostgreSQL or MariaDB in your environment and get used to making DBs and connections.

It is entirely likely that your error is due to the single-threaded nature of SQLite. Don't use SQLite.

1 Like

hi Phil
I will keep in mind your comments regarding SQLite forever and its limitations - I did change db historian connection to sql express.
Also i did change in the datasync\settings remote gateway name from IP to the actual gateway name and the data is being passed OK from Edge to the History provider on Full Gateway.
I am happy again :slight_smile: thanks for help

I very explicitly did not recommend anything from Microsoft (or Oracle). Test setups grow into production setups, and suddenly your very limited SQL Express kit falls over.

PostgreSQL or MariaDB. Really.

1 Like

thanks for highlighting it. Its absolutely true that due to human nature test setups become often production setups.
The reason i chose sql express is that I had bad experience with MariaDB and its terrible unstable management studio called heidi (i switched later to mysql studio) and find mssql a lot more powerful and polished product. I might be wrong but mariadb documentation is lacking to explain its internals. Also from performance there is huge gap between these 2 databases (mariadb about 2k io vs mssql about 30k io) but obviously mariadb deserves its place as well. Of course sql express is limited and this has to be highlighted as you did.

@pturmel gave 2 options, both free, and not limited. SQL Express is limited, because Microsoft wants your $$$ and so they give a limited version of their product. On top of that their product doesn't adhere to SQL standards but instead Microsoft's weird interpretation of them (some of us are stuck with it).

If you had a bad experience with MariaDB, then perhaps try PostgreSQL.

1 Like

thanks for sharing your experience. Any chance you expand on the:

SQL standards but instead Microsoft's weird interpretation of them (some of us are stuck with it)