Sobes.tech
Senior

Hikari Pool com 10 conexões, sob carga, recebemos 'connections not available'. O que fazer?

sobes.tech IA

Resposta da IA

O erro "connections not available" no HikariCP com um pool de 10 conexões significa que todas as conexões disponíveis estão ocupadas e novas solicitações não podem obter uma conexão do pool.

O que fazer:

  • Aumentar o tamanho do pool (por exemplo, aumentar maxPoolSize), se a carga realmente exigir mais conexões.
  • Verificar se as conexões estão sendo fechadas corretamente (chamando o método close() na Connection), caso contrário, permanecem ocupadas.
  • Analisar o tempo de vida e o tempo de espera das conexões (connectionTimeout), talvez seja necessário aumentar o timeout.
  • Otimizar as consultas e transações para que ocupem as conexões por menos tempo.
  • Ativar o registro de logs do HikariCP para identificar vazamentos de conexões (leakDetectionThreshold).

Exemplo de configuração para aumentar o pool:

HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(20); // aumentar o pool para 20
HikariDataSource ds = new HikariDataSource(config);

É importante garantir que o banco de dados e a infraestrutura possam suportar um número maior de conexões.