AFCollectiveMembers Class
- Last UpdatedNov 18, 2025
- 8 minute read
- PI System
- AF SDK 2024 R2
- Developer
A collection of AFCollectiveMember objects maintained by the
AFCollective.

Inheritance Hierarchy
SystemObject
OSIsoft.AFAFCollection
OSIsoft.AFAFCollectionAFCollectiveMember
OSIsoft.AFAFNamedCollectionAFCollectiveMember
OSIsoft.AF.CollectiveAFCollectiveMembers
OSIsoft.AFAFCollection
OSIsoft.AFAFCollectionAFCollectiveMember
OSIsoft.AFAFNamedCollectionAFCollectiveMember
OSIsoft.AF.CollectiveAFCollectiveMembers
Namespace: OSIsoft.AF.Collective
Assembly: OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 3.1.1.1182
Syntax
public sealed class AFCollectiveMembers : AFNamedCollection<AFCollectiveMember>
Public NotInheritable Class AFCollectiveMembers Inherits AFNamedCollection(Of AFCollectiveMember) Dim instance As AFCollectiveMembers
public ref class AFCollectiveMembers sealed : public AFNamedCollection<AFCollectiveMember^>
[<SealedAttribute>] type AFCollectiveMembers = class inherit AFNamedCollection<AFCollectiveMember> end
The AFCollectiveMembers type exposes the following members.
Properties
| Name | Description | |
|---|---|---|
| Collective |
This property returns the AFCollective object which owns the collective members collection.
| |
| Count |
Gets the number of items actually contained in the collection.
(Inherited from AFCollectionT.) | |
| Identity |
This read-only property contains identity of the object.
(Inherited from AFCollection.) | |
| IsDeleted |
This read-only property indicates whether the owner of the collection has been deleted.
(Inherited from AFCollection.) | |
| ItemGuid | Returns the item in the collection associated with the passed in ID. (Inherited from AFCollectionT.) | |
| ItemInt32 | Returns the item located at the passed in index. (Inherited from AFCollectionT.) | |
| ItemString |
Returns the specified object from the collection by name.
(Inherited from AFNamedCollectionT.) | |
| ItemIdentity |
This read-only property specifies the identity of the objects within the collection.
(Inherited from AFCollection.) | |
| PISystem |
This read-only property allows access to the PISystem
associated with this collection.
(Inherited from AFCollection.) |
Methods
| Name | Description | |
|---|---|---|
| Add(T) |
Adds an object to the end of the collection.
(Inherited from AFCollectionT.) | |
| Add(PISystem) |
Adds a new collective member to the AFCollective using the specified
PISystem.
| |
| Clear |
Removes all items from the collection.
(Inherited from AFCollectionT.) | |
| Contains(Guid) |
This method determines whether the collection contains a specific item referenced by id.
(Inherited from AFCollectionT.) | |
| Contains(T) |
This method determines whether the collection contains a specific item.
(Inherited from AFCollectionT.) | |
| Contains(String) |
This method determines whether the collection contains a specific item referenced by name.
(Inherited from AFNamedCollectionT.) | |
| CopyTo |
Copies the entire collection to a compatible one-dimensional Array,
starting at the specified index of the target array.
(Inherited from AFCollectionT.) | |
| Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
| GetEnumerator |
Returns an enumerator that iterates through the collection.
(Inherited from AFCollectionT.) | |
| GetHashCode |
Gets the hash code for this instance of the object which is suitable for use in hashing
algorithms and data structures like a hash table.
(Inherited from AFCollection.) | |
| GetType | Gets the Type of the current instance. (Inherited from Object.) | |
| IndexOf |
Searches for the specified object and returns the zero-based index of the first
occurrence within the entire collection.
(Inherited from AFCollectionT.) | |
| Remove(Guid) |
Removes the item with the specified id from the collection.
(Inherited from AFCollectionT.) | |
| Remove(T) |
Removes the first occurrence of a specific object from the collection.
(Inherited from AFCollectionT.) | |
| Remove(String) |
The Remove method removes the item from the collection by name.
(Inherited from AFNamedCollectionT.) | |
| RemoveAt |
Removes the item at the specified index of the collection.
(Inherited from AFCollectionT.) | |
| Sort |
Sorts the items in the entire collection using the default comparer.
(Inherited from AFCollectionT.) | |
| Sort(IComparerT) |
Sorts the items in the entire collection using the specified comparer.
(Inherited from AFCollectionT.) | |
| Sort(Int32, Int32, IComparerT) |
Sorts the items in a range of items in the collection using the specified comparer.
(Inherited from AFCollectionT.) | |
| ToString |
Returns a String that represents the current object.
(Inherited from AFCollection.) |
Remarks
This is the collection of AFCollectiveMember objects returned by the
Members property of AFCollective.
Examples
// This example demonstrates how to create and remove a collective. // Add the PISystem to be used as the primary PISystems myPISystems = new PISystems(); PISystem primary = myPISystems.Add(primaryName); primary.Connect(); // Check if primary is already a collective if (primary.Collective != null) throw new InvalidOperationException(string.Format("Primary '{0}' is already a collective.", primary.Name)); // Add the PISystem to be used as the secondary PISystem secondary = myPISystems.Add(secondaryName); secondary.Connect(); // Check if secondary is already a collective if (secondary.Collective != null) throw new InvalidOperationException(string.Format("Secondary '{0}' is already a collective.", secondary.Name)); // Create the collective AFCollective collective = primary.CreateCollective(); primary.Name = "Test-Collective"; // Change the collective name primary.Description = "The Collective"; // Change the collective description // Add members to the collective AFCollectiveMember primaryMember = collective.FindPrimary(); if (primaryMember == null) throw new InvalidOperationException("Could not find primary."); primaryMember.Description = "The Primary Member"; AFCollectiveMember secondaryMember = collective.Members.Add(secondary); secondaryMember.Description = "The Secondary Member"; collective.ApplyChanges(); // Initialize replication of the database on the primary primaryMember.StartReplication(); // Wait until the primary is ready before starting replication // on the secondaries. collective.Refresh(); while (primaryMember.SyncStatus != AFSyncStatus.NoConfiguredSubscriptions) { System.Threading.Thread.Sleep(TimeSpan.FromSeconds(30)); collective.Refresh(); } // Initialize replication of the database on the secondaries foreach (AFCollectiveMember member in collective.Members) { if (member.ServerRole != AFServerRole.Primary) member.StartReplication(); } // Display Collective Information Console.WriteLine("Name of Collective = {0}", primary.Name); Console.WriteLine("Description = {0}", primary.Description); foreach (AFCollectiveMember CurMember in primary.Collective.Members) { Console.WriteLine(" Name of Member = {0}", CurMember.Name); Console.WriteLine(" Description = {0}", CurMember.Description); Console.WriteLine(" IsAvailable = {0}", CurMember.IsAvailable); Console.WriteLine(); }
' This example demonstrates how to create and remove a collective. ' Add the PISystem to be used as the primary Dim myPISystems As New PISystems Dim primary As PISystem = myPISystems.Add(primaryName) primary.Connect() ' Check if primary is already a collective If primary.Collective IsNot Nothing Then Throw New InvalidOperationException(String.Format("Primary '{0}' is already a collective.", primary.Name)) End If ' Add the PISystem to be used as the secondary Dim secondary As PISystem = myPISystems.Add(secondaryName) secondary.Connect() ' Check if secondary is already a collective If secondary.Collective IsNot Nothing Then Throw New InvalidOperationException(String.Format("Secondary '{0}' is already a collective.", secondary.Name)) End If ' Create the collective Dim collective As AFCollective = primary.CreateCollective() primary.Name = "Test-Collective" ' Change the collective name primary.Description = "The Collective" ' Change the collective description ' Add members to the collective Dim primaryMember As AFCollectiveMember = collective.FindPrimary() If (primaryMember Is Nothing) Then Throw New InvalidOperationException("Could not find primary.") End If primaryMember.Description = "The Primary Member" Dim secondaryMember As AFCollectiveMember = collective.Members.Add(secondary) secondaryMember.Description = "The Secondary Member" collective.ApplyChanges() ' Initialize replication of the database on the primary primaryMember.StartReplication() ' Wait until the primary is ready before starting replication ' on the secondaries. collective.Refresh() While (primaryMember.SyncStatus <> AFSyncStatus.NoConfiguredSubscriptions) System.Threading.Thread.Sleep(TimeSpan.FromSeconds(30)) collective.Refresh() End While ' Initialize replication of the database on the secondaries For Each member As AFCollectiveMember In collective.Members If (member.ServerRole <> AFServerRole.Primary) Then member.StartReplication() End If Next ' Display Collective Information Console.WriteLine("Name of Collective = {0}", primary.Name) Console.WriteLine("Description = {0}", primary.Description) For Each CurMember As AFCollectiveMember In primary.Collective.Members Console.WriteLine(" Name of Member = {0}", CurMember.Name) Console.WriteLine(" Description = {0}", CurMember.Description) Console.WriteLine(" IsAvailable = {0}", CurMember.IsAvailable) Console.WriteLine() Next
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.