Serialization Exception in Gateway Logger

Hi All,

I am testing a project which handles some very large ignition datasets. The datasets seem to be handling fine, and I don’t see any issues in project execution. However, I’m getting this error in the logger each time my gateway scripts do anything with the datasets:

simpleorm.utils.SException$Validation: Param too long (>-1) for field [F TagPropertyRecord.StrVal] and value ###I removed the value string here because the dataset is so big###

at simpleorm.dataset.validation.SValidatorMaxLength.onValidate(SValidatorMaxLength.java:32)

at simpleorm.dataset.SFieldMeta.doValidate(SFieldMeta.java:277)

at simpleorm.dataset.SRecordInstance.doValidateField(SRecordInstance.java:861)

at simpleorm.dataset.SRecordInstance.setObject(SRecordInstance.java:273)

at simpleorm.dataset.SRecordInstance.setObject(SRecordInstance.java:236)

at simpleorm.dataset.SRecordInstance.setString(SRecordInstance.java:393)

at com.inductiveautomation.ignition.gateway.sqltags.tagproviders.internal.config.TagPropertyRecord.setValue(TagPropertyRecord.java:182)

at com.inductiveautomation.ignition.gateway.sqltags.tagproviders.internal.InternalTagStore.storeTagProperty(InternalTagStore.java:1478)

at com.inductiveautomation.ignition.gateway.sqltags.tagproviders.internal.InternalTagStore.storeTagProperty(InternalTagStore.java:1455)

at com.inductiveautomation.ignition.gateway.sqltags.tagproviders.internal.InternalTagStore.internalStoreTagValues(InternalTagStore.java:1337)

at com.inductiveautomation.ignition.gateway.sqltags.tagproviders.internal.InternalTagStore.storeTagValues(InternalTagStore.java:1244)

at com.inductiveautomation.ignition.gateway.sqltags.providers.AbstractStoreBasedTagProvider.tagValuesChanged(AbstractStoreBasedTagProvider.java:2435)

at com.inductiveautomation.ignition.gateway.sqltags.scanclasses.SimpleExecutableScanClass$ScanClassTagEvaluationContext.processAndReset(SimpleExecutableScanClass.java:1051)

at com.inductiveautomation.ignition.gateway.sqltags.scanclasses.SimpleExecutableScanClass.run(SimpleExecutableScanClass.java:889)

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

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

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

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(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

Just for my curiosity, and maybe for ignition’s benefit, I was wondering if anyone had seen this before?

Ignition maintains the most recent value of all SQLTags in its internal database so that they are persistent across shutdown/restart. The column widths are limited. Avoid putting the datasets in tags. (Use script module global variables, distribute with the messaging infrastructure, etc.) Or just put up with the errors and accept that your dataset tags might not survive a service restart.

1 Like

Thanks for the info! Do you happen to know what the size limits are, exactly?

No, though I recall the limits being increased in the not too distant past, thanks to this sort of thing.