The devices disappear from the Connected Devices list

Hello everyone

I have a problem with the Ignition Gateway, I usually have 35 devices connected, but now only 18 appear.
I don’t know what happened to the other devices.

I have already restarted the service more than 5 times, but the others still do not appear.

I already checked the logs but I’m not sure what the error means.

I hope you can help me.

INFO   | jvm 1    | 2019/08/01 08:58:09 | E [x.s.DeviceManager             ] [12:58:09]: Error adding driver 'CX4823FPZ3' of type 'LogixDriver'. module-name=Logix Driver
INFO   | jvm 1    | 2019/08/01 08:58:09 | simpleorm.utils.SException$Jdbc: Opening com.inductiveautomation.ignition.gateway.localdb.CountingDataSource@5cbd6c2d
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at simpleorm.sessionjdbc.SSessionJdbc.innerOpen(SSessionJdbc.java:113)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.ignition.gateway.localdb.persistence.PersistenceSession.initialize(PersistenceSession.java:31)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.ignition.gateway.localdb.PersistenceInterfaceImpl.getSession(PersistenceInterfaceImpl.java:62)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.ignition.gateway.model.BaseExtensionPointType.findProfileSettingsRecord(BaseExtensionPointType.java:105)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.xopc.drivers.logix.LogixDriverType.createDriver(LogixDriverType.java:24)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.xopc.server.devices.DeviceManager.loadDriver(DeviceManager.java:240)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.xopc.server.devices.DeviceManager.loadAllOfType(DeviceManager.java:212)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.xopc.server.devices.DeviceManager.registerDriverType(DeviceManager.java:178)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.xopc.driver.common.AbstractDriverModuleHook.serviceReady(AbstractDriverModuleHook.java:99)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.ignition.gateway.services.ModuleServicesManagerImpl.subscribe(ModuleServicesManagerImpl.java:96)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.xopc.driver.common.AbstractDriverModuleHook.startup(AbstractDriverModuleHook.java:68)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.xopc.drivers.logix.LogixDriverHook.startup(LogixDriverHook.java:60)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl$LoadedModule.startup(ModuleManagerImpl.java:2273)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.startup(ModuleManagerImpl.java:385)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.ignition.gateway.SRContext.startupInternal(SRContext.java:1394)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.startup(RedundancyManagerImpl.java:224)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.ignition.gateway.SRContext.asyncInit(SRContext.java:1036)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.ignition.gateway.SRContext.access$300(SRContext.java:289)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.ignition.gateway.SRContext$2.run(SRContext.java:767)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:518)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at java.util.concurrent.FutureTask.run(Unknown Source)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at java.lang.Thread.run(Unknown Source)
INFO   | jvm 1    | 2019/08/01 08:58:09 | Caused by: java.sql.SQLException: Connection is locked. Datasource only allows one connection at a time. More information was logged to the gateway console.
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.ignition.gateway.localdb.sqlite.SingleConnectionDatasource.getConnection(SingleConnectionDatasource.java:75)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at com.inductiveautomation.ignition.gateway.localdb.DelegatingDataSource.getConnection(DelegatingDataSource.java:60)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	at simpleorm.sessionjdbc.SSessionJdbc.innerOpen(SSessionJdbc.java:111)
INFO   | jvm 1    | 2019/08/01 08:58:09 | 	... 26 common frames omitted

Can you upload the rest of the logs?
Do you have any custom modules installed?

The internal database Ignition uses to store all configuration and settings is a SQLite file. SQLite only allows one connection at a time [1], to help ensure data correctness. Ignition itself should be the only connection to that database, but the error is indicating that something else has already established a connection, so Ignition isn’t able to.

[1]: Technically, there are exceptions to this that allow multiple concurrent reads, but we’re not using them because it makes things that much more likely to break.

This is indicative of a more serious issue with your Ignition gateway - the internal DB seems to be under massive contention.

The most common cause I see for this is the use/abuse of system.tag.browse, when done frequently, often in a tag via runScript.