We're building a custom historian module for TimescaleDB on the Ignition 8.3 historian extension point. It works well in a single-gateway setup.
I then started testing with a Remote Historian, to see whether it also works over the Gateway Network.
Setup:
Gateway A ──
Gateway B (remote)
Remote Historian Our Custom Historian
A good reference for me is the SQL Historian, so I tested the same setup with the SQL Historian first. I created a tag [default]remote/rr1 that uses a Remote Historian, and checked what ends up in the database. The tag is recorded as belonging to Gateway A:
Gateway A / default / remote/rr1
That makes sense — we need to know which gateway the data came from.
With this design in mind, I added a breakpoint in doStoreAtomic(List<AtomicPoint<?>> points) on Gateway B and tried to find which field of the incoming point carries the source-gateway information (here, "Gateway A"). However, the AtomicPoint.source() QualifiedPath we receive in doStoreAtomic already has sys = Gateway B (the local/receiving gateway), not A:
As far as I can tell from the SDK, by the time our engine is called the path has already been normalized to the system schema, with the local gateway name as sys.
Using the 8.3 historian SDK, how can a custom historian obtain the originating/source gateway (and provider) of remote-forwarded data, the way the SQL Tag Historian does?
Any help is greatly appreciated.