Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Connessioni al database e teoria del pooling (2/3)
Scritto da Dario Guadagno il 25-09-2008 ore 11:48
Intel Parallel Studio XE
Nella prima parte dell'articolo, sono stati descritti i problemi tipici dei database ed il concetto di pooling. In questa seconda parte si vedrà come utilizzare tale tecnica in ambiente Java e come essa permetta di risolvere gli aspetti critici della connessione a DB.

La soluzione proposta consiste nella realizzazione di un DataSource, o fornitore di connessioni. La tecnica sfrutta allo scopo un servizio offerto da Tomcat. Il DataSource di default offerto dall'application server è basata sul connection pool delle DBCP del progetto Jakarta Commons. In effetti, comunque, questa è solo una delle possibili strategie: si potrebbe usare qualsiasi altro connection pool, che implementi javax.sql.DataSource.

La premessa al procedimento passa attraverso una riflessione sul funzionamento di Tomcat: la versione 5 fornisce un’istanza di implementazione JNDI di un contesto iniziale per ogni web application, che gira sotto di esso.

Considerata una generica web application sotto Tomcat, l'InitialContext è configurato non appena la web application è caricata ed è reso disponibile a tutti i componenti della stessa (solo per un accesso in lettura). Tutti i parametri e le risorse configurate sono poste nella porzione java:comp/env del namespace JNDI, per cui un tipico accesso ad una risorsa (nel nostro caso ad un DataSource JDBC) passa attraverso un'invocazione mediante blocco try... catch:
  1. <span style="font-size:1.0em">
  2. 	try {
  3. 		Context ctx = new InitialContext();
  4. 		if (ctx == null) {
  5. 			throw new Exception("No Context");
  6. 		}
  7. 		ds = (javax.sql.DataSource) ctx.lookup("java:comp/env/MysqlJNDI");
  8. 	} 
  9. 	catch (Exception e) {
  10. 		e.printStackTrace();
  11. 	}
  12. </span>
Il metodo lookup della classe Context restituisce il DataSource dell’applicazione. Una volta ottenuto il DataSource, nell'ultima parte dell'articolo vedremo come utilizzarlo per gestire le connessioni al DB in maniera pulita ed efficiente.
Precedente: Adobe Premiere Pro CS3 - Classroom in a book
Successiva: La sedia a rotelle del futuro
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.213 secondi.