Dato il seguente scenario
- Un'applicazione aziendale in scatola che mantiene il proprio pool di connessioni
- Un'applicazione client sviluppata internamente all'app aziendale. Questa app è costruita utilizzando il framework Spring, con il pattern DAO
Anche se posso avere una visione semplicistica di questo, penso che la seguente linea di pensiero sia valida:
-
Avere un pool fisso di oggetti DAO, mantenendo gli oggetti di connessione dal pool. Chiaramente, il pool dovrebbe essere in grado di scalare (o diminuire a seconda delle necessità) e gli oggetti di connessione devono superare numericamente i DAO con un margine salutare. Buono
-
Creazione di nuovi DAO nuovi di zecca per ogni richiesta di accesso all'app aziendale; ogni DAO tenterà di prendere una connessione dal pool e rilasciarlo quando è fatto. Bad
Poiché si tratta di oggetti di servizio, non ci sarà uno stato (mutevole) detenuto dagli oggetti (rischio ridotto di problemi di concorrenza)
Penso anche che con # 1, ci dovrebbe essere poca o nessuna contesa di risorse, mentre in # 2, ci sarà quasi sempre un DAO in attesa di essere servito. Il mio pensiero è corretto e cosa potrebbe andare storto?