The IPICollective interface is a secondary interface supported by the Server object. All Server objects support this interface allowing a program to access the IsCollectiveMember property to determine if the server is part of a collective. The interface has other methods and properties that provide access to collective specific features but don't apply to Server objects that are not part of a collective. These calls will return an appropriate error when invoked against non collective server objects.
A PI server collective is a group of physical PI servers (member servers) that maintain consistent configuration and collect identical data. A collective addressed by a Server object that represents the entire collective. When a program is connected to a collective and its connection to a particular member is lost, the PI-SDK will failover to another member of the collective. This behavior supports high availability of data stored in PI.
PI server access functions are intended to work seamlessly between server collectives and single servers. However, the PI server collective members have some behaviors that may vary between the members. The choice of member server during a connection may be influenced through properties of the IPICollective interface or through new syntax in the connection string of the Server.Open command. The PI-SDK also switches connections dynamically to support calls that are only supported on certain members of the collective. For a detailed discussion consult the Advanced Topics section on High Availability in this help system.