Sto utilizzando l'avvio a molla e l'ibernazione su jpa con il pool di connessione di tomcat. Potete per favore aiutarmi a capire come molla usa le connessioni DB durante le transazioni. Ad esempio, si consideri il seguente scenario:Limite di transazione primaverile e connessione DB in attesa
- Abbiamo un pool di connessione DB di 2 connessioni.
- Spring avvia una transazione, ad esempio il metodo di chiamata decorato con l'annotazione @Transactional.
- Questo metodo fare un aggiornamento DB
- Il chiama un servizio esterno
- Come risposta viene ricevuta dal servizio esterno, aggiorna DB e ritorno.
- Primavera commit della transazione
Supponendo che il servizio esterno (fase 4) dura circa 1 minuto per completare, quante connessioni DB sarà disponibile nel pool DB ?. Supponendo che la molla manterrà la connessione DB fino al completamento della transazione, ci sarà una sola connessione DB disponibile per qualsiasi richiesta ricevuta durante questo periodo e se avremo ricevuto più di 1 richieste, dovranno attendere la connessione DB.
Si prega di confermare la mia comprensione e, se è corretta, suggerire come posso gestire questa situazione in un sistema ad alto volume di transazioni.
Grazie