Gateway Looking for a class no longer in the module

What would make the gateway look for a class that may have been in the module previously but is no longer there?

For example I do see this error but the module installed doesn't even have or use this class. I can't remember perfectly now but probably during development I refactored the module so it is a module the gateway has seen in this module before but it is not there now.

java.lang.ClassNotFoundException: com.inductiveautomation.ignition.examples.kafka.auditlogsf.AuditRecordSFData

The end class is in the module, but at a different path:

Its almost like its held somewhere in the gateway but I don't want it to be there anymore. Not sure how to get rid of it.

Thanks,

Nick

Need a little more context to go with that error, is there a stack trace you omitted?

My first guess is that it got serialized using Java serialization into some kind of S&F record or cache or whatever.

@Kevin.Herron sorry, yeah here is the full error trace:

java.lang.ClassNotFoundException: com.inductiveautomation.ignition.examples.kafka.auditlogsf.AuditRecordSFData

at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)

at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)

at java.base/java.lang.ClassLoader.loadClass(Unknown Source)

at java.base/java.lang.Class.forName0(Native Method)

at java.base/java.lang.Class.forName(Unknown Source)

at java.base/java.io.ObjectInputStream.resolveClass(Unknown Source)

at com.inductiveautomation.ignition.gateway.cluster.ModuleObjectInputStream.resolveClass(ModuleObjectInputStream.java:37)

at java.base/java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)

at java.base/java.io.ObjectInputStream.readClassDesc(Unknown Source)

at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject(Unknown Source)

at com.inductiveautomation.ignition.gateway.cluster.ClusterUtil.deserializeObject(ClusterUtil.java:105)

at com.inductiveautomation.ignition.gateway.cluster.ClusterUtil.deserializeObject(ClusterUtil.java:67)

at com.inductiveautomation.ignition.gateway.cluster.ClusterUtil.unzipAndDeserializeObject(ClusterUtil.java:99)

at com.inductiveautomation.ignition.gateway.history.stores.AbstractDatasourceStore.deserializeObject(AbstractDatasourceStore.java:549)

at com.inductiveautomation.ignition.gateway.history.stores.AbstractDatasourceStore.loadTransactions(AbstractDatasourceStore.java:618)

at com.inductiveautomation.ignition.gateway.history.stores.AbstractDatasourceStore.syncdTakeNext(AbstractDatasourceStore.java:565)

at com.inductiveautomation.ignition.gateway.history.stores.AbstractStore.takeNext(AbstractStore.java:213)

at com.inductiveautomation.ignition.gateway.history.stores.MultiStageStore.syncdTakeNext(MultiStageStore.java:165)

at com.inductiveautomation.ignition.gateway.history.stores.AbstractStore.takeNext(AbstractStore.java:213)

at com.inductiveautomation.ignition.gateway.history.forwarders.ForwarderThread.synchedTakeNext(ForwarderThread.java:200)

at com.inductiveautomation.ignition.gateway.history.forwarders.RedundancyAwareForwarder.synchedTakeNext(RedundancyAwareForwarder.java:68)

at com.inductiveautomation.ignition.gateway.history.forwarders.ForwarderThread.run(ForwarderThread.java:137)

Nick

Adding: in gateways where I have only ever installed the module once i.e. "fresh" this doesn't happen.

I'm only seeing it on this gateway where I did a significant amount of revision and changes while making the module.

Nick

I pinged someone a little more familiar with this stuff. But it does look like you have some S&F caches containing this kind of record and now your gateway doesn't understand it, or something like that. Not sure if they need to be cleared or what.

Noting that I have disabled the S&F disk cache for the audits, deleted the folder in "Ignition\data\datacache" then re-enabled the S&F disk cache but that doesn't remedy it.

Also, the audit records reach their intended destinations (one in local MSSQL and the other in Kafka) so functionally it works its just throwing this error in the logs.

Furthering after testing just now: even after I completely uninstall the module the same error comes out in the logs.

Nick