Sobes.tech
Senior

Hikari Pool con 10 connessioni, sotto carico abbiamo ricevuto 'connections not available'. Cosa fare?

sobes.tech AI

Risposta dell'AI

L'errore "connections not available" in HikariCP con un pool di 10 connessioni significa che tutte le connessioni disponibili sono occupate e le nuove richieste non possono ottenere una connessione dal pool.

Cosa fare:

  • Aumentare la dimensione del pool (ad esempio, aumentare maxPoolSize), se il carico richiede effettivamente più connessioni.
  • Verificare che le connessioni vengano chiuse correttamente (chiamando il metodo close() sulla Connection), altrimenti rimangono occupate.
  • Analizzare il tempo di vita e il timeout delle connessioni (connectionTimeout), potrebbe essere necessario aumentare il timeout.
  • Ottimizzare le query e le transazioni per ridurre il tempo di occupazione delle connessioni.
  • Attivare il logging di HikariCP per individuare perdite di connessioni (leakDetectionThreshold).

Esempio di configurazione per aumentare il pool:

HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(20); // aumentare il pool a 20
HikariDataSource ds = new HikariDataSource(config);

È importante assicurarsi che il database e l'infrastruttura possano supportare un numero maggiore di connessioni.