Class ClusterDescription



  • @Immutable
    public class ClusterDescription
    extends Object
    Immutable snapshot state of a cluster.
    Since:
    3.0
    • Constructor Detail

      • ClusterDescription

        public ClusterDescription​(ClusterConnectionMode connectionMode,
                                  ClusterType type,
                                  List<ServerDescription> serverDescriptions)
        Creates a new ClusterDescription.
        Parameters:
        connectionMode - whether to connect directly to a single server or to multiple servers
        type - what sort of cluster this is
        serverDescriptions - the descriptions of all the servers currently in this cluster
      • ClusterDescription

        public ClusterDescription​(ClusterConnectionMode connectionMode,
                                  ClusterType type,
                                  List<ServerDescription> serverDescriptions,
                                  ClusterSettings clusterSettings,
                                  ServerSettings serverSettings)
        Creates a new ClusterDescription.
        Parameters:
        connectionMode - whether to connect directly to a single server or to multiple servers
        type - what sort of cluster this is
        serverDescriptions - the descriptions of all the servers currently in this cluster
        clusterSettings - the cluster settings
        serverSettings - the server settings
        Since:
        3.4
      • ClusterDescription

        public ClusterDescription​(ClusterConnectionMode connectionMode,
                                  ClusterType type,
                                  MongoException srvResolutionException,
                                  List<ServerDescription> serverDescriptions,
                                  ClusterSettings clusterSettings,
                                  ServerSettings serverSettings)
        Creates a new ClusterDescription.
        Parameters:
        connectionMode - whether to connect directly to a single server or to multiple servers
        type - what sort of cluster this is
        srvResolutionException - an exception resolving the SRV record
        serverDescriptions - the descriptions of all the servers currently in this cluster
        clusterSettings - the cluster settings
        serverSettings - the server settings
        Since:
        3.10
    • Method Detail

      • getClusterSettings

        public ClusterSettings getClusterSettings​()
        Gets the cluster settings, which may be null if not provided.
        Returns:
        the cluster settings
        Since:
        3.4
      • getServerSettings

        public ServerSettings getServerSettings​()
        Gets the server settings, which may be null if not provided.
        Returns:
        the server settings
        Since:
        3.4
      • isCompatibleWithDriver

        public boolean isCompatibleWithDriver​()
        Return whether all servers in the cluster are compatible with the driver.
        Returns:
        true if all servers in the cluster are compatible with the driver
      • findServerIncompatiblyOlderThanDriver

        public ServerDescription findServerIncompatiblyOlderThanDriver​()
        Return a server in the cluster that is incompatibly older than the driver.
        Returns:
        a server in the cluster that is incompatibly older than the driver, or null if there are none
        Since:
        3.6
      • findServerIncompatiblyNewerThanDriver

        public ServerDescription findServerIncompatiblyNewerThanDriver​()
        Return a server in the cluster that is incompatibly newer than the driver.
        Returns:
        a server in the cluster that is incompatibly newer than the driver, or null if there are none
        Since:
        3.6
      • hasReadableServer

        public boolean hasReadableServer​(ReadPreference readPreference)
        Returns true if this cluster has at least one server that satisfies the given read preference.
        Parameters:
        readPreference - the non-null read preference
        Returns:
        whether this cluster has at least one server that satisfies the given read preference
        Since:
        3.3
      • hasWritableServer

        public boolean hasWritableServer​()
        Returns true if this cluster has at least one server that can be used for write operations.
        Returns:
        true if this cluster has at least one server that can be used for write operations
        Since:
        3.3
      • getConnectionMode

        public ClusterConnectionMode getConnectionMode​()
        Gets whether this cluster is connecting to a single server or multiple servers.
        Returns:
        the ClusterConnectionMode for this cluster
      • getType

        public ClusterType getType​()
        Gets the specific type of this cluster
        Returns:
        a ClusterType enum representing the type of this cluster
      • getSrvResolutionException

        public MongoException getSrvResolutionException​()
        Gets any exception encountered while resolving the SRV record for the initial host.
        Returns:
        any exception encountered while resolving the SRV record for the initial host, or null if none
        Since:
        3.10
      • getServerDescriptions

        public List<ServerDescription> getServerDescriptions​()
        Returns an unmodifiable list of the server descriptions in this cluster description.
        Returns:
        an unmodifiable list of the server descriptions in this cluster description
        Since:
        3.3
      • getLogicalSessionTimeoutMinutes

        public Integer getLogicalSessionTimeoutMinutes​()
        Gets the logical session timeout in minutes, or null if at least one of the known servers does not support logical sessions.
        Returns:
        the logical session timeout in minutes, which may be null
        Since:
        3.6
        Since server release
        3.6
      • getAll

        @Deprecated
        public Set<ServerDescription> getAll​()
        Deprecated. Use getServerDescriptions() instead
        Returns the Set of all server descriptions in this cluster, sorted by the String value of the ServerAddress of each one.
        Returns:
        the set of server descriptions
      • getByServerAddress

        @Deprecated
        public ServerDescription getByServerAddress​(ServerAddress serverAddress)
        Deprecated. Replace with a filter on ServerDescription in the caller
        Returns the ServerDescription for the server at the given address
        Parameters:
        serverAddress - the ServerAddress for a server in this cluster
        Returns:
        the ServerDescription for this server
      • getPrimaries

        @Deprecated
        public List<ServerDescription> getPrimaries​()
        Deprecated. Replace with a filter on ServerDescription in the caller
        While it may seem counter-intuitive that a MongoDB cluster can have more than one primary, it can in the case where the client's view of the cluster is a set of mongos servers, any of which can serve as the primary.
        Returns:
        a list of servers that can act as primaries
      • getSecondaries

        @Deprecated
        public List<ServerDescription> getSecondaries​()
        Deprecated. Replace with a filter on ServerDescription in the caller
        Get a list of all the secondaries in this cluster
        Returns:
        a List of ServerDescriptions of all the secondaries this cluster is currently aware of
      • getSecondaries

        @Deprecated
        public List<ServerDescription> getSecondaries​(TagSet tagSet)
        Deprecated. Replace with a filter on ServerDescription in the caller
        Get a list of all the secondaries in this cluster that match a given TagSet
        Parameters:
        tagSet - a Set of replica set tags
        Returns:
        a List of ServerDescriptions of all the secondaries this cluster that match all of the given tags
      • getAny

        @Deprecated
        public List<ServerDescription> getAny​()
        Deprecated. Replace with a filter on ServerDescription in the caller
        Gets a list of ServerDescriptions for all the servers in this cluster which are currently accessible.
        Returns:
        a List of ServerDescriptions for all servers that have a status of OK
      • getAnyPrimaryOrSecondary

        @Deprecated
        public List<ServerDescription> getAnyPrimaryOrSecondary​()
        Deprecated. Replace with a filter on ServerDescription in the caller
        Gets a list of all the primaries and secondaries in this cluster.
        Returns:
        a list of ServerDescriptions for all primary and secondary servers
      • getAnyPrimaryOrSecondary

        @Deprecated
        public List<ServerDescription> getAnyPrimaryOrSecondary​(TagSet tagSet)
        Deprecated. Replace with a filter on ServerDescription in the caller
        Gets a list of all the primaries and secondaries in this cluster that match the given replica set tags.
        Parameters:
        tagSet - a Set of replica set tags
        Returns:
        a list of ServerDescriptions for all primary and secondary servers that contain all of the given tags
      • hashCode

        public int hashCode​()
        Overrides:
        hashCode in class Object
      • getShortDescription

        public String getShortDescription​()
        Returns a short, pretty description for this ClusterDescription.
        Returns:
        a String describing this cluster.