Package com.mongodb

Class MongoClientSettings

java.lang.Object
com.mongodb.MongoClientSettings

@Immutable public final class MongoClientSettings extends Object
Various settings to control the behavior of a MongoClient.
Since:
3.7
  • Method Details

    • getDefaultCodecRegistry

      public static CodecRegistry getDefaultCodecRegistry()
      Returns:
      the default codec registry
    • builder

      public static MongoClientSettings.Builder builder()
      Convenience method to create a Builder.
      Returns:
      a builder
    • builder

      public static MongoClientSettings.Builder builder(MongoClientSettings settings)
      Convenience method to create a from an existing MongoClientSettings.
      Parameters:
      settings - create a builder from existing settings
      Returns:
      a builder
    • getDnsClient

      @Nullable public DnsClient getDnsClient()
      Gets the DnsClient to use for resolving DNS queries.

      If set, it will be used to resolve SRV and TXT records for mongodb+srv connections. Otherwise, implementations of DnsClientProvider will be discovered via ServiceLoader. If no implementations are discovered, then com.sun.jndi.dns.DnsContextFactory will be used to resolve these records.

      If applying a connection string to these settings, care must be taken to also pass the same DnsClient as an argument to the ConnectionString constructor.

      Returns:
      the DNS client
      Since:
      4.10
      See Also:
    • getInetAddressResolver

      @Nullable public InetAddressResolver getInetAddressResolver()
      Gets the InetAddressResolver to use for looking up the InetAddress instances for each host.

      If set, it will be used to look up the InetAddress for each host, via InetAddressResolver.lookupByName(String). Otherwise, InetAddress.getAllByName(String) will be used.

      Returns:
      the InetAddress resolver
      Since:
      4.10
    • getReadPreference

      public ReadPreference getReadPreference()
      The read preference to use for queries, map-reduce, aggregation, and count.

      Default is ReadPreference.primary().

      Returns:
      the read preference
      See Also:
    • getCredential

      @Nullable public MongoCredential getCredential()
      Gets the credential.
      Returns:
      the credential, which may be null
    • getWriteConcern

      public WriteConcern getWriteConcern()
      The write concern to use.

      Default is WriteConcern.ACKNOWLEDGED.

      Returns:
      the write concern
      See Also:
    • getRetryWrites

      public boolean getRetryWrites()
      Returns true if writes should be retried if they fail due to a network error or other retryable error.

      Starting with the 3.11.0 release, the default value is true

      Returns:
      the retryWrites value
      Since server release
      3.6
    • getRetryReads

      public boolean getRetryReads()
      Returns true if reads should be retried if they fail due to a network error or other retryable error. The default value is true.
      Returns:
      the retryReads value
      Since:
      3.11
      Since server release
      3.6
    • getReadConcern

      public ReadConcern getReadConcern()
      The read concern to use.
      Returns:
      the read concern
      MongoDB documentation
      Read Concern
      Since server release
      3.2
    • getCodecRegistry

      public CodecRegistry getCodecRegistry()
      The codec registry to use, or null if not set.
      Returns:
      the codec registry
    • getTransportSettings

      @Nullable public TransportSettings getTransportSettings()
      Gets the settings for the underlying transport implementation
      Returns:
      the settings for the underlying transport implementation
      Since:
      4.11
      See Also:
    • getCommandListeners

      public List<CommandListener> getCommandListeners()
      Gets the list of added CommandListener.

      The default is an empty list.

      Returns:
      the unmodifiable list of command listeners
    • getApplicationName

      @Nullable public String getApplicationName()
      Gets the logical name of the application using this MongoClient. The application name may be used by the client to identify the application to the server, for use in server logs, slow query logs, and profile collection.

      Default is null.

      Returns:
      the application name, which may be null
      See Also:
      Since server release
      3.4
    • getCompressorList

      public List<MongoCompressor> getCompressorList()
      Gets the compressors to use for compressing messages to the server. The driver will use the first compressor in the list that the server is configured to support.

      Default is the empty list.

      Returns:
      the compressors
      Since server release
      3.4
    • getUuidRepresentation

      public UuidRepresentation getUuidRepresentation()
      Gets the UUID representation to use when encoding instances of UUID and when decoding BSON binary values with subtype of 3.

      The default is UuidRepresentation.UNSPECIFIED, If your application stores UUID values in MongoDB, you must set this value to the desired representation. New applications should prefer UuidRepresentation.STANDARD, while existing Java applications should prefer UuidRepresentation.JAVA_LEGACY. Applications wishing to interoperate with existing Python or .NET applications should prefer UuidRepresentation.PYTHON_LEGACY or UuidRepresentation.C_SHARP_LEGACY, respectively. Applications that do not store UUID values in MongoDB don't need to set this value.

      Returns:
      the UUID representation, which may not be null
      Since:
      3.12
    • getServerApi

      @Nullable public ServerApi getServerApi()
      Gets the server API to use when sending commands to the server.
      Returns:
      the server API, which may be null
      Since:
      4.3
    • getAutoEncryptionSettings

      @Nullable public AutoEncryptionSettings getAutoEncryptionSettings()
      Gets the auto-encryption settings.

      In-use encryption enables an application to specify what fields in a collection must be encrypted, and the driver automatically encrypts commands and decrypts results.

      Automatic encryption is an enterprise only feature that only applies to operations on a collection. Automatic encryption is not supported for operations on a database or view and will result in error. To bypass automatic encryption, set bypassAutoEncryption=true in ClientSideEncryptionOptions.

      Explicit encryption/decryption and automatic decryption is a community feature, enabled with the new com.mongodb.client.vault .ClientEncryption type. A MongoClient configured with bypassAutoEncryption=true will still automatically decrypt.

      Automatic encryption requires the authenticated user to have the listCollections privilege action.

      Supplying an encryptedFieldsMap provides more security than relying on an encryptedFields obtained from the server. It protects against a malicious server advertising false encryptedFields.

      Returns:
      the auto-encryption settings, which may be null
      Since:
      3.11
    • getLoggerSettings

      public LoggerSettings getLoggerSettings()
      Gets the logger settings.
      Returns:
      the logger settings
      Since:
      4.9
    • getClusterSettings

      public ClusterSettings getClusterSettings()
      Gets the cluster settings.
      Returns:
      the cluster settings
    • getSslSettings

      public SslSettings getSslSettings()
      Gets the SSL settings.
      Returns:
      the SSL settings
    • getSocketSettings

      public SocketSettings getSocketSettings()
      Gets the connection-specific settings wrapped in a settings object. This settings object uses the values for connectTimeout and socketTimeout.
      Returns:
      a SocketSettings object populated with the connection settings from this MongoClientSettings instance.
      See Also:
    • getHeartbeatSocketSettings

      public SocketSettings getHeartbeatSocketSettings()
      Gets the connection settings for the heartbeat thread (the background task that checks the state of the cluster) wrapped in a settings object.
      Returns:
      the SocketSettings for the heartbeat thread
      See Also:
    • getConnectionPoolSettings

      public ConnectionPoolSettings getConnectionPoolSettings()
      Gets the settings for the connection provider in a settings object. This settings object wraps the values for minConnectionPoolSize, maxConnectionPoolSize, maxWaitTime, maxConnectionIdleTime and maxConnectionLifeTime.
      Returns:
      a ConnectionPoolSettings populated with the settings from this MongoClientSettings instance that relate to the connection provider.
      See Also:
    • getServerSettings

      public ServerSettings getServerSettings()
      Gets the server-specific settings wrapped in a settings object. This settings object uses the heartbeatFrequency and minHeartbeatFrequency values from this MongoClientSettings instance.
      Returns:
      a ServerSettings
      See Also:
    • getContextProvider

      @Nullable public ContextProvider getContextProvider()
      Get the context provider
      Returns:
      the context provider
      Since:
      4.4
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object