Ho un'applicazione che si connette a database basati su una stringa JSON che contiene informazioni sulla connessione. Il json viene inviato solo all'avvio dell'applicazione.
Come gestisci tali pool di connessioni? Perché posso ottenere più configurazioni che puntano allo stesso database con lo stesso utente. So che non posso creare nuove connessioni ogni volta poiché si tratta di un'operazione costosa, quindi utilizzo i pool di connessioni (Apache DBCP2).
Ma quando due pool si collegano allo stesso database a volte ricevo l'errore "troppe connessioni" poiché la dimensione del pool di due pool è maggiore delle connessioni massime consentite.
Tieni i pool di connessione in una HashMap in cui la stringa di connessione viene utilizzata come chiave per una cattiva idea?
La configurazione è simile a questa (molto semplice JSON):
{
dbconfig: [
{ database 1 ... },
{ database 2 ... },
{ database 3 ... }
],
otherconfig: { ... }
}
I database 1 e 2 config puntano allo stesso database, o allo stesso server ma a un altro database
Quindi la mia applicazione genera tre thread che ricevono dati su una porta predefinita. Non so quali connessioni di database otterrò e quanti thread di lavoro creerò. E la mia domanda è se esiste una sorta di framework di pool in cui posso lanciare le configurazioni e si occuperà della condivisione delle connessioni e posso solo richiedere la connessione da esso.
Attualmente con il mio design vorrei creare 3 pool da cui 2 pool stanno accedendo allo stesso server e talvolta allo stesso database ed è per questo che ottengo le "troppe connessioni".