Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AF SDK Reference

AFCollectiveMembers Class

  • Last UpdatedNov 18, 2025
  • 8 minute read
AFCollectiveMembers Class
A collection of AFCollectiveMember objects maintained by the AFCollective.

Inheritance Hierarchy

SystemObject
  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

  NameDescription
Public property
Collective
This property returns the AFCollective object which owns the collective members collection.
Public property
Count
Gets the number of items actually contained in the collection.
(Inherited from AFCollectionT.)
Public property
Identity
This read-only property contains identity of the object.
(Inherited from AFCollection.)
Public property
IsDeleted
This read-only property indicates whether the owner of the collection has been deleted.
(Inherited from AFCollection.)
Public property
ItemGuid
Returns the item in the collection associated with the passed in ID.
(Inherited from AFCollectionT.)
Public property
ItemInt32
Returns the item located at the passed in index.
(Inherited from AFCollectionT.)
Public property
ItemString
Returns the specified object from the collection by name.
(Inherited from AFNamedCollectionT.)
Public property
ItemIdentity
This read-only property specifies the identity of the objects within the collection.
(Inherited from AFCollection.)
Public property
PISystem
This read-only property allows access to the PISystem associated with this collection.
(Inherited from AFCollection.)

Methods

  NameDescription
Public method
Add(T)
Adds an object to the end of the collection.
(Inherited from AFCollectionT.)
Public method
Add(PISystem)
Adds a new collective member to the AFCollective using the specified PISystem.
Public method
Clear
Removes all items from the collection.
(Inherited from AFCollectionT.)
Public method
Contains(Guid)
This method determines whether the collection contains a specific item referenced by id.
(Inherited from AFCollectionT.)
Public method
Contains(T)
This method determines whether the collection contains a specific item.
(Inherited from AFCollectionT.)
Public method
Contains(String)
This method determines whether the collection contains a specific item referenced by name.
(Inherited from AFNamedCollectionT.)
Public method
CopyTo
Copies the entire collection to a compatible one-dimensional Array, starting at the specified index of the target array.
(Inherited from AFCollectionT.)
Public method
Equals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public method
GetEnumerator
Returns an enumerator that iterates through the collection.
(Inherited from AFCollectionT.)
Public method
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.)
Public method
GetType
Gets the Type of the current instance.
(Inherited from Object.)
Public method
IndexOf
Searches for the specified object and returns the zero-based index of the first occurrence within the entire collection.
(Inherited from AFCollectionT.)
Public method
Remove(Guid)
Removes the item with the specified id from the collection.
(Inherited from AFCollectionT.)
Public method
Remove(T)
Removes the first occurrence of a specific object from the collection.
(Inherited from AFCollectionT.)
Public method
Remove(String)
The Remove method removes the item from the collection by name.
(Inherited from AFNamedCollectionT.)
Public method
RemoveAt
Removes the item at the specified index of the collection.
(Inherited from AFCollectionT.)
Public method
Sort
Sorts the items in the entire collection using the default comparer.
(Inherited from AFCollectionT.)
Public method
Sort(IComparerT)
Sorts the items in the entire collection using the specified comparer.
(Inherited from AFCollectionT.)
Public method
Sort(Int32, Int32, IComparerT)
Sorts the items in a range of items in the collection using the specified comparer.
(Inherited from AFCollectionT.)
Public method
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.

Version Information

AFSDK


See Also

TitleResults for “How to create a CRG?”Also Available in