Quote Originariamente inviata da fermat Visualizza il messaggio
che strategia posso adottare per evitare questo problema?
considerando che non posso modificare quel parametro purtroppo.
Il punto è stai facendo "troppe" Connection!!!

La funzione getClient() restituisce una NUOVA Connection ogni volta.

val statement: Statement = getClient().createStatement()
qui ottieni una Connection, ci invochi subito createStatement() ma della Connection NON mantieni il riferimento e quindi NON la chiudi.

getClient().commit()
qui stai committando una Connection appena creata .. è inutile.

getClient().close()
qui stai facendo il close() (corretto) ma di una Connection su cui non hai fatto nulla.

In sostanza, non può funzionare correttamente così (e non ha senso).

Quindi le soluzioni:

- o fai tutta la "solita" trafila di operazioni tipiche dell'uso diretto di JDBC.
- o usi un qualche framework/libreria apposito (anche solo MyBatis, per dire).
- o, per evitare la "solita" trafila di operazioni, ti fai una sorta di JDBC "template" (concettualmente similare al JdbcTemplate di Spring) anche se ovviamente limitato/ristretto ai tuoi casi d'uso.