1 Reply Latest reply on Oct 26, 2012 5:37 PM by jlakumb

    Deleting values from Pi while in collective




      We made application that once a day process some data, deletes results of old processing and stores new results in a Pi.


      We deployed app in a production environment including Pi Collective for HA. Now, when we are deleting old results, Pi is throwing error:


      "Write failed.  Unbuffered write would desynchronize archive data."


      Consulted tech support and found out that in a collective you can't use IPIData2.RemoveValues so there is no option for deleting the data.


      Just as a note:


      - we are using Pi v3.4.385.77, PISDK v1.4.0.416


      - Pi Buffering Subsystem is used


      - Connection to a collective is opened using PISDK.Server piServer = new PISDK.PISDK().Servers[serverName] where serverName is name of the PICollective


      - Tuning parameter Replication_EnableSDKWriteValues on secondary member is 1


      Question is, is there some other approach (turning of buffering, using PiAF SDK, using Pi API....) that will preserve HA and allow deletition of data?






        • Re: Deleting values from Pi while in collective

          Given this scenario, I believe the behavior you are seeing is by design.  The solution is for us to provide server-side buffering (which is still on our long-term roadmap).  In the meantime, your options are likely the ones you listed - turn off PI SDK buffering or use PI AF SDK (PI API is not recommended) to delete data from each collective member.  The downside is that you will need to connect to each member individually to delete the data (and write the data if you decide not to use buffering).  You may also need to verify the data is properly written/deleted on each member.  This will still "preserve" HA in terms of synchronizing the point configuration, but you will be responsible for ensuring the data is in sync between the collective members.