Missing dataChanges in dataLogger, performance issue?

Questions regarding the use of the .NET SDK 2.0 for Server or Client development or integration into customer products ...

Moderator: uasdknet

Post Reply
martenbyebye
Hero Member
Hero Member
Posts: 21
Joined: 03 Mar 2017, 16:08

Missing dataChanges in dataLogger, performance issue?

Post by martenbyebye »

Hi,

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?
  1. node.Write()

    var node = this.nodeManager.FindInMemoryNode(); => node.Write();
    this.nodeManager.GetNodeHandle(); =>this.nodeManager.ReportDataChanges()
  2. nodeManager.WriteAttribute()

    this.nodeManager.GetNodeHandle(); => this.nodeManager.WriteAttribute()
  3. nodeManager.WriteValue()

    // seems this is not implemented by the BaseNodeManager.
  4. Server.Write()

    this.nodeManager.Server.Write();

    This seems to be a batch method. Does it help for Performance?
  5. Server.InternalClient.Write / WriteValue / WriteAttribute

    this.nodeManager.Server.InternalClient.Write()
  6. using one of NodeManagers protected methods
Are there significant differences between those methods which makes one method better suitable for a data logging client than another?

Thanks in advance!

Post Reply