david@realiv

Remove values from HA servers with PI Buffer Subsystem active

Discussion created by david@realiv on Apr 1, 2013
Latest reply on Apr 2, 2013 by RJKSolutions

Hi, All, 

 

 

 

After several failed attempts removing values from HA servers with PI Buffer Subsystem active, we try AF SDK 2.5 for this. The code added looks like this: 

 

 

 
            var piServers = new List<OSIsoft.AF.PI.PIServer>();

            PISDK.IPICollective piCollective = App.Current.PIServer as PISDK.IPICollective;
            if (piCollective.IsCollectiveMember && piCollective.CollectiveConnectionType == PISDK.pisdkCollectiveConnectionType.cctCollective)
            {
                // Is connected to Collective
                piServers.AddRange(piCollective.MemberAvailability.Cast<PISDKCommon.NamedValue>().Where(m => m.Value != 0).Select(m => OSIsoft.AF.PI.PIServer.FindPIServer(m.Name)));
            }

            var oldValue = App.Current.PIServer.PIPoints["cdt158"].Data.ArcValue(DateTime.Now, RetrievalTypeConstants.rtAtOrBefore);

            foreach (var srv in piServers)
            {
                        var afValue = new OSIsoft.AF.Asset.AFValue(oldValue.Value, new OSIsoft.AF.Time.AFTime(oldValue.TimeStamp.UTCSeconds));

                        OSIsoft.AF.PI.PIPoint.FindPIPoint(srv, "cdt158").UpdateValue(afValue, OSIsoft.AF.Data.AFUpdateOption.Remove);
            }

 Similar code works fine in a standalone server. However, with HA servers with PI Buffer Subsystem active in the client side, we got the following error message: 

 

[-11414] Buffered point does not accept new events. 

 

 

 

Anyone lend us a hand and elaborate how to remove values from HA servers without turning off PI Buffer Subsystem (some other custom interfaces depend on it)? Thanks a lot in advance! 

 

 

 

David

Outcomes