Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Pool de Conexões

Neste guia, você aprenderá como o driver .NET/C# usa pools de conexões para gerenciar conexões com um MongoDB deployment e como definir as configurações do pool de conexões em seu aplicação.

Um pool de conexões é um cache de conexões de banco de dados abertas mantidas pelo driver .NET/C#. Quando seu aplicação solicita uma conexão com o MongoDB, o driver .NET/C# obtém uma conexão do pool sem problemas, executa operações e retorna a conexão ao pool para reutilização.

Os pools de conexões ajudam a reduzir a latência de aplicação e o número de vezes que novas conexões são criadas pelo driver .NET/C#. O diagrama a seguir ilustra uma visão de alto nível de como o MongoClient gerencia um pool de conexões:

Diagrama CMAP

Você pode especificar as seguintes configurações do pool de conexões no seu objeto MongoClient ou em seu URI de conexão:

Contexto
Descrição

ConnectTimeout

A quantidade máxima de tempo que o driver .NET/C# aguarda ao estabelecer uma nova conexão antes de atingir o tempo limite.

Tipo de dados: TimeSpan
Padrão: 30 segundos
Exemplo de URI de conexão: connectTimeoutMS=0

MaxConnecting

O número máximo de conexões que cada pool pode estabelecer simultaneamente. Se esse limite for atingido, outras solicitações aguardarão até que uma conexão seja estabelecida ou outra conexão em uso seja verificada novamente no pool.

Tipo de dados: integer
Padrão: 2
Exemplo de URI de conexão: maxConnecting=3

MaxConnectionIdleTime

O tempo máximo que uma conexão pode permanecer inativa no pool. Quando uma conexão excede esse limite, o driver .NET/C# fecha a conexão e a remove do pool.

Tipo de dados: TimeSpan
Padrão: 10 minutos
Exemplo de URI de conexão: maxIdleTimeMS=60000

MaxConnectionLifeTime

O tempo máximo que uma conexão pode ser agrupada. Quando uma conexão excede esse limite, o driver .NET/C# fecha a conexão e a remove do pool.

Tipo de dados: TimeSpan
Padrão: 30 minutos
Exemplo de URI de conexão: maxLifeTimeMS=50000

MaxConnectionPoolSize

O número máximo de conexões simultâneas que o pool mantém. Se o tamanho máximo do pool for atingido, solicitações adicionais aguardarão até que uma conexão fique disponível.

Tipo de dados: integer
Padrão: 100
Exemplo de URI de conexão: maxPoolSize=150

MinConnectionPoolSize

O número mínimo de conexões simultâneas que o pool mantém. Se o número de conexões abertas cair abaixo desse valor devido a erros de rede, o driver .NET/C# tentará criar novas conexões para manter esse mínimo.

Tipo de dados: integer
Padrão: 0
Exemplo de URI de conexão: minPoolSize=3

SocketTimeout

O período de tempo que o driver .NET/C# aguarda uma resposta do servidor antes de atingir o tempo limite.

Tipo de dados: Padrão: TimeSpan

Exemplo de URI de conexão padrão do sistema operacional: socketTimeoutMS=100000

WaitQueueTimeout

Quanto tempo um thread espera até que uma conexão fique disponível no pool de conexões antes de atingir o tempo limite.

Tipo de dados: TimeSpan
Padrão: 2 minutos
Exemplo de URI de conexão: waitQueueTimeoutMS=100000

O código a seguir cria um cliente com um tamanho máximo do pool de conexões de 50 usando o parâmetro MaxConnectionPoolSize:

var settings = MongoClientSettings.FromConnectionString("<connection URI>");
settings.MaxConnectionPoolSize = 50;
var client = new MongoClient(settings);

O código a seguir cria um cliente com a mesma configuração do exemplo anterior, mas usa um URI de conexão:

var settings = MongoClientSettings.FromConnectionString("<hostname>?maxPoolSize=50");
var client = new MongoClient(settings);

Para saber mais sobre pool de conexões, consulte Visão geral do pool de conexões no manual do MongoDB Server .

Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API: