Device Status N/A

I have had this issue several times on various gateways. When a gateway is restarted, sometimes the device connections don’t start up correctly as indicated in the attached image. I’ve had the same thing happen when disabling/enabling a device before. Any thoughts on why this happens and how to prevent it?

@jlteel did you ever find a solution to this? I am having the same issue.

Look in your logs for warnings/errors related to locking of the internal database…

I honestly can’t remember what I ended up doing, probably just living with the issue. I think Phil has a good suggestion. It’s probably related to the internal database being locked. If you can migrate to version 8.x, this problem may go away.

This is the error I am getting related to that issue. It looks to me as if the system is mad because we have 2 of the same connection when that isn’t the case. This driver is brand new. The client got it maybe 2 days ago. We tried restarting the gateway and that didn’t help (and also faulted the gateway for some reason, but that is unrelated…hopefully)

java.lang.IllegalArgumentException: A metric named drivers.BMS Siemens 1200.item-count already exists

at com.codahale.metrics.MetricRegistry.register(MetricRegistry.java:91)

at com.inductiveautomation.xopc.driver.api.AbstractDriver.(AbstractDriver.java:150)

at com.inductiveautomation.xopc.driver.api.AbstractSocketDriver.(AbstractSocketDriver.java:46)

at com.inductiveautomation.xopc.drivers.siemens.S7Driver.(S7Driver.java:118)

at com.inductiveautomation.xopc.drivers.siemens.S71200Driver.(S71200Driver.java:9)

at com.inductiveautomation.xopc.drivers.siemens.configuration.S71200DriverType.createDriver(S71200DriverType.java:49)

at com.inductiveautomation.xopc.server.devices.DeviceManager.loadDriver(DeviceManager.java:240)

at com.inductiveautomation.xopc.server.devices.DeviceManager.access$100(DeviceManager.java:30)

at com.inductiveautomation.xopc.server.devices.DeviceManager$RecordListener.recordAdded(DeviceManager.java:287)

at com.inductiveautomation.xopc.server.devices.DeviceManager$RecordListener.recordAdded(DeviceManager.java:279)

at com.inductiveautomation.ignition.gateway.localdb.PersistenceInterfaceImpl.notifyRecordAdded(PersistenceInterfaceImpl.java:168)

at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl.doNotifyRecordAdded(RedundantPersistenceInterfaceImpl.java:77)

at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl$RecordUpdateListener.recordAdded(RedundantPersistenceInterfaceImpl.java:287)

at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl$RecordAddedMessage.notify(RedundantPersistenceInterfaceImpl.java:364)

at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl$RecordUpdateListener.receiveCall(RedundantPersistenceInterfaceImpl.java:279)

at com.inductiveautomation.ignition.gateway.redundancy.QueueableMessageReceiver.receiveCall(QueueableMessageReceiver.java:47)

at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.dispatchMessage(RedundancyManagerImpl.java:722)

at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl$ExecuteTask.run(RedundancyManagerImpl.java:743)

at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:518)

at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)
``