I am using the DataLogger from the UA Expert to test my Server.
I am getting batches of data (say 100 data points, each point having data for 20 variable nodes), which I write on the nodes (configured as nodeHandleType Internal) every 400 ms so that the subscribing client gets the data. Sometimes data is missing in the log, and I suspect it is a Performance issue. The client supports exception based subscriptions, but does not support a Queue size > 1.
There may be a lot of nodes eventually (10k), but I am currently testing with < 1k.
My first question is: Should I use another nodeHandleType instead?
My second question: Assuming that using the Internal nodes is just fine, could I be using the wrong (slow) write method?
- node.Write()
var node = this.nodeManager.FindInMemoryNode(); => node.Write();
this.nodeManager.GetNodeHandle(); =>this.nodeManager.ReportDataChanges() - nodeManager.WriteAttribute()
this.nodeManager.GetNodeHandle(); => this.nodeManager.WriteAttribute() - nodeManager.WriteValue()
// seems this is not implemented by the BaseNodeManager. - Server.Write()
this.nodeManager.Server.Write();
This seems to be a batch method. Does it help for Performance? - Server.InternalClient.Write / WriteValue / WriteAttribute
this.nodeManager.Server.InternalClient.Write() - using one of NodeManagers protected methods
Thanks in advance!