Class ServerDescription



  • @Immutable
    public class ServerDescription
    extends java.lang.Object
    Immutable snapshot state of a server.
    Since:
    3.0
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  ServerDescription.Builder
      A builder for creating ServerDescription.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      static ServerDescription.Builder builder​()
      Gets a Builder for creating a new ServerDescription instance.
      boolean equals​(java.lang.Object o)
      Returns true if this instance is equals to @code{o}.
      ServerAddress getAddress​()
      Gets the address of this server
      java.util.Set<java.lang.String> getArbiters​()
      Gets the arbiters in the replica set
      java.lang.String getCanonicalAddress​()
      Gets the string representing the host name and port that this member of a replica set was configured with, e.g.
      ClusterType getClusterType​()
      Gets the type of the cluster this server is in (for example, replica set).
      static int getDefaultMaxDocumentSize​()
      Get the default maximum document size.
      static int getDefaultMaxWireVersion​()
      Get the default maximum wire version
      static int getDefaultMinWireVersion​()
      Get the default minimum wire version
      ObjectId getElectionId​()
      The replica set electionid reported by this MongoDB server.
      java.lang.Throwable getException​()
      Gets the exception thrown while attempting to determine the server description.
      java.util.Set<java.lang.String> getHosts​()
      Get a Set of strings in the format of "[hostname]:[port]" that contains all members of the replica set that are neither hidden, passive, nor arbiters.
      long getLastUpdateTime​(java.util.concurrent.TimeUnit timeUnit)
      Gets the time that this server description was created, using a monotonic clock like System.nanoTime().
      java.util.Date getLastWriteDate​()
      Gets the last write date.
      java.lang.Integer getLogicalSessionTimeoutMinutes​()
      Gets the session timeout in minutes.
      int getMaxDocumentSize​()
      The maximum permitted size of a BSON object in bytes for this mongod process.
      int getMaxWireVersion​()
      The latest version of the wire protocol that this MongoDB server is capable of using to communicate with clients.
      int getMinWireVersion​()
      The earliest version of the wire protocol that this MongoDB server is capable of using to communicate with clients.
      java.util.Set<java.lang.String> getPassives​()
      Gets the passive members of the replica set.
      java.lang.String getPrimary​()
      Gets the address of the current primary in the replica set
      long getRoundTripTimeNanos​()
      Get the time it took to make the round trip for requesting this information from the server in nanoseconds.
      java.lang.String getSetName​()
      Gets the name of the replica set
      java.lang.Integer getSetVersion​()
      The replica set setVersion reported by this MongoDB server.
      java.lang.String getShortDescription​()
      Returns a short, pretty description for this ServerDescription.
      ServerConnectionState getState​()
      Gets the current state of the connection to the server.
      TagSet getTagSet​()
      A set of all tags assigned to this member.
      ServerType getType​()
      Gets the type of the server, for example whether it's a standalone or in a replica set.
      ServerVersion getVersion​()
      Deprecated. 
      int hashCode​()  
      boolean hasTags​(TagSet desiredTags)
      Returns true if the server has the given tags.
      boolean isCompatibleWithDriver​()
      Return whether the server is compatible with the driver.
      boolean isIncompatiblyNewerThanDriver​()
      Return whether the server is compatible with the driver.
      boolean isIncompatiblyOlderThanDriver​()
      Return whether the server is compatible with the driver.
      boolean isOk​()
      The isOK() result from requesting this information from the server
      boolean isPrimary​()
      Returns whether this can be treated as a primary server.
      boolean isReplicaSetMember​()
      Gets whether this server is a replica set member.
      boolean isSecondary​()
      Returns whether this can be treated as a secondary server.
      boolean isShardRouter​()
      Gets whether this is a server that is the entry point to a sharded instance of MongoDB.
      boolean isStandAlone​()
      Gets whether this is part of a replica set/sharded system, or is a single server.
      java.lang.String toString​()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • MIN_DRIVER_SERVER_VERSION

        public static final java.lang.String MIN_DRIVER_SERVER_VERSION
        The minimum supported driver server version
        Since:
        3.8
        See Also:
        Constant Field Values
      • MIN_DRIVER_WIRE_VERSION

        public static final int MIN_DRIVER_WIRE_VERSION
        The minimum supported driver wire version
        Since:
        3.8
        See Also:
        Constant Field Values
      • MAX_DRIVER_WIRE_VERSION

        public static final int MAX_DRIVER_WIRE_VERSION
        The maximum supported driver wire version
        Since:
        3.8
        See Also:
        Constant Field Values
    • Method Detail

      • builder

        public static ServerDescription.Builder builder​()
        Gets a Builder for creating a new ServerDescription instance.
        Returns:
        a new Builder for ServerDescription.
      • getCanonicalAddress

        public java.lang.String getCanonicalAddress​()
        Gets the string representing the host name and port that this member of a replica set was configured with, e.g. "somehost:27019". This is typically derived from the "me" field from the "isMaster" command response.
        Returns:
        the host name and port that this replica set member is configured with.
      • getLogicalSessionTimeoutMinutes

        public java.lang.Integer getLogicalSessionTimeoutMinutes​()
        Gets the session timeout in minutes.
        Returns:
        the session timeout in minutes, or null if sessions are not supported by this server
        Since:
        3.6
        Since server release
        3.6
      • isCompatibleWithDriver

        public boolean isCompatibleWithDriver​()
        Return whether the server is compatible with the driver. An incompatible server is one that has a min wire version greater that the driver's max wire version or a max wire version less than the driver's min wire version.
        Returns:
        true if the server is compatible with the driver.
      • isIncompatiblyNewerThanDriver

        public boolean isIncompatiblyNewerThanDriver​()
        Return whether the server is compatible with the driver. An incompatible server is one that has a min wire version greater that the driver's max wire version or a max wire version less than the driver's min wire version.
        Returns:
        true if the server is compatible with the driver.
        Since:
        3.6
      • isIncompatiblyOlderThanDriver

        public boolean isIncompatiblyOlderThanDriver​()
        Return whether the server is compatible with the driver. An incompatible server is one that has a min wire version greater that the driver's max wire version or a max wire version less than the driver's min wire version.
        Returns:
        true if the server is compatible with the driver.
        Since:
        3.6
      • getDefaultMaxDocumentSize

        public static int getDefaultMaxDocumentSize​()
        Get the default maximum document size.
        Returns:
        the default maximum document size
      • getDefaultMinWireVersion

        public static int getDefaultMinWireVersion​()
        Get the default minimum wire version
        Returns:
        the default minimum wire version
      • getDefaultMaxWireVersion

        public static int getDefaultMaxWireVersion​()
        Get the default maximum wire version
        Returns:
        the default maximum wire version
      • getAddress

        public ServerAddress getAddress​()
        Gets the address of this server
        Returns:
        a ServerAddress containing the details of the address of this server.
      • isReplicaSetMember

        public boolean isReplicaSetMember​()
        Gets whether this server is a replica set member.
        Returns:
        true if this server is part of a replica set
      • isShardRouter

        public boolean isShardRouter​()
        Gets whether this is a server that is the entry point to a sharded instance of MongoDB.
        Returns:
        true if this server is a mongos instance
      • isStandAlone

        public boolean isStandAlone​()
        Gets whether this is part of a replica set/sharded system, or is a single server.
        Returns:
        true if this is a single server
      • isPrimary

        public boolean isPrimary​()
        Returns whether this can be treated as a primary server.
        Returns:
        true if this server is the primary in a replica set, is a mongos, or is a single standalone server
      • isSecondary

        public boolean isSecondary​()
        Returns whether this can be treated as a secondary server.
        Returns:
        true if this server is a secondary in a replica set, is a mongos, or is a single standalone server
      • getHosts

        public java.util.Set<java.lang.String> getHosts​()
        Get a Set of strings in the format of "[hostname]:[port]" that contains all members of the replica set that are neither hidden, passive, nor arbiters.
        Returns:
        all members of the replica set that are neither hidden, passive, nor arbiters.
      • getPassives

        public java.util.Set<java.lang.String> getPassives​()
        Gets the passive members of the replica set.
        Returns:
        A set of strings in the format of "[hostname]:[port]" listing all members of the replica set which have a priority of 0.
      • getArbiters

        public java.util.Set<java.lang.String> getArbiters​()
        Gets the arbiters in the replica set
        Returns:
        A Set of strings in the format of "[hostname]:[port]" containing all members of the replica set that are arbiters.
      • getPrimary

        public java.lang.String getPrimary​()
        Gets the address of the current primary in the replica set
        Returns:
        A string in the format of "[hostname]:[port]" listing the current primary member of the replica set.
      • getMaxDocumentSize

        public int getMaxDocumentSize​()
        The maximum permitted size of a BSON object in bytes for this mongod process. Defaults to 16MB.
        Returns:
        the maximum size a document can be
      • getTagSet

        public TagSet getTagSet​()
        A set of all tags assigned to this member.
        Returns:
        a TagSet with all the tags for this server.
      • getMinWireVersion

        public int getMinWireVersion​()
        The earliest version of the wire protocol that this MongoDB server is capable of using to communicate with clients.
        Returns:
        the minimum protocol version supported by this server
        Since server release
        2.6
      • getMaxWireVersion

        public int getMaxWireVersion​()
        The latest version of the wire protocol that this MongoDB server is capable of using to communicate with clients.
        Returns:
        the maximum protocol version supported by this server
        Since server release
        2.6
      • getElectionId

        public ObjectId getElectionId​()
        The replica set electionid reported by this MongoDB server.
        Returns:
        the electionId, which may be null
      • getSetVersion

        public java.lang.Integer getSetVersion​()
        The replica set setVersion reported by this MongoDB server.
        Returns:
        the setVersion, which may be null
      • getLastWriteDate

        @Nullable
        public java.util.Date getLastWriteDate​()
        Gets the last write date.
        Returns:
        the last write date, which may be null
        Since:
        3.4
        Since server release
        3.4
      • getLastUpdateTime

        public long getLastUpdateTime​(java.util.concurrent.TimeUnit timeUnit)
        Gets the time that this server description was created, using a monotonic clock like System.nanoTime().
        Parameters:
        timeUnit - the time unit
        Returns:
        the last update time in the given unit
        Since:
        3.4
      • hasTags

        public boolean hasTags​(TagSet desiredTags)
        Returns true if the server has the given tags. A server of either type ServerType.STANDALONE or ServerType.SHARD_ROUTER is considered to have all tags, so this method will always return true for instances of either of those types.
        Parameters:
        desiredTags - the tags
        Returns:
        true if this server has the given tags
      • getSetName

        public java.lang.String getSetName​()
        Gets the name of the replica set
        Returns:
        the name of the replica set
      • isOk

        public boolean isOk​()
        The isOK() result from requesting this information from the server
        Returns:
        true if the request executed correctly
      • getState

        public ServerConnectionState getState​()
        Gets the current state of the connection to the server.
        Returns:
        ServerConnectionState representing whether the server has been successfully connected to
      • getType

        public ServerType getType​()
        Gets the type of the server, for example whether it's a standalone or in a replica set.
        Returns:
        the server type
      • getClusterType

        public ClusterType getClusterType​()
        Gets the type of the cluster this server is in (for example, replica set).
        Returns:
        a ClusterType representing the type of the cluster this server is in
      • getVersion

        @Deprecated
        public ServerVersion getVersion​()
        Deprecated. Use getMaxWireVersion() instead
        Gets the server version
        Returns:
        a ServerVersion representing which version of MongoDB is running on this server
      • getRoundTripTimeNanos

        public long getRoundTripTimeNanos​()
        Get the time it took to make the round trip for requesting this information from the server in nanoseconds.
        Returns:
        the time taken to request the information, in nano seconds
      • getException

        public java.lang.Throwable getException​()
        Gets the exception thrown while attempting to determine the server description. This is useful for diagnostic purposed when determining the root cause of a connectivity failure.
        Returns:
        the exception, which may be null
      • equals

        public boolean equals​(java.lang.Object o)
        Returns true if this instance is equals to @code{o}. Note that equality is defined to NOT include the round trip time.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        o - the object to compare to
        Returns:
        true if this instance is equals to @code{o}
      • hashCode

        public int hashCode​()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString​()
        Overrides:
        toString in class java.lang.Object
      • getShortDescription

        public java.lang.String getShortDescription​()
        Returns a short, pretty description for this ServerDescription.
        Returns:
        a String containing the most pertinent information about this ServerDescription