Newsgroup: it.comp.java
Titolo: pool di connessioni

Scusate la domanda da deficente...
avrei bisogno di un pool di connessioni per realizzare un'applicazione
server di accesso ai dati.  Avevo sentito parlare che in jdbc 2.0 esiste
qualcosa che ha a che fare con i pool di connessioni (es. DataSource) ma mi
sembra di aver capito che in realtà sono solo delle interfaccie e quindi,
finche nessuno me le implementa (cosa che, da quello che ho capito, fanno
gli application server nell'ambito web) non me ne faccio molto.
Vi prego di correggeremi se sto dicendo delle vaccate, mi sarebbe di enorme
aiuto.
In sostanza un pool me lo devo implementare....o devo trovarne uno di gia
pronto.
Se metto "connection pool" su google ne trovo un camion quindi provavo a
chiedervi se qualcuno sa suggerirmi qualche esempio che ha provato e gli
sembra discretamente funzionante.
Grazie mille, ciao
--
Massimo

un pool di connessioni viene creato dal web-server all'avvio se sono stati
speciicati i parametri, per ex con resin nel file web.xml che si trova nella
cartella WEB-INF sotto la root del tuo progetto basta aggiungere le seguenti
righe
<resource-ref>
      <res-ref-name>jdbc/sqlserver</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <init-param
driver-name="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
      <init-param
url="jdbc:microsoft:sqlserver://campardis:1433;DatabaseName=SAPUTF"/>
      <init-param user="artes"/>
      <init-param password="artesAdmin"/>
      <init-param max-connections="30"/>
      <init-param max-idle-time="1"/>
</resource-ref>
in questo modo all'avvio del webServer questo cercherà di istanziare un pool
di connessioni al database specificato, nel caso in cui non ci riuscisse si
fermerà e non avvierà la tua webapp.
dopodichè dal tuo codice java puoi accedere a quel pool usando il JNDI (una
schifezza odiosa ma che ogni tanto sembra anche funzionare :) )
prima di tutto devi creare un context:
                            Context env = new InitialContext();
dopodichè assegni a una classe DataSource il risultato della lookup fatta
dal JNDI
                            pool =
(DataSource)env.lookup("java:comp/env/jdbc/sqlserver");
a questo punto per ottenere un'oggetto java.sql.Connection è sufficente
usare il metodo
                            DataSource.getConnection()
chiaramente se tutto è andato a buon fine! :)
spero di esserti stato di aiuto
Ciao
  Stefano
"Massimo" <massimo...@LeVaMeinfocamere.it> ha scritto nel messaggio
news:avucu1$48...@intra09.infocamere.it...


 wrote in message
news:HBfV9.46318$AA2.2...@news2.tin.it...


qualche parte (ad esempio mi è stato ad esempio suggerito di guardare su
in passato e' stato suggerito PoolMan che puoi trovare su sourceforge.
Non l'ho ancora provato. Fammi sapere se e' quello che cerchi perche' ho
un problema simile al tuo...
ciao
-- 
Seti@Home Java Applets
http://maruko.cjb.net/

 un problema simile al tuo...
Se siete abbastanza ardimentosi potreste provare quello che mi sono scritto
io: prevede la gestione di più database, politiche di preallocazione, un
limite massimo alle connessioni, possibilità di timeout o attesa perenne,
tiene gli stack trace di chi ha richiesto le connessioni per debug, pulizia
delle connessioni senza autocommit, e se lo infili in un motore per servlet
c'è la possibilità di richiamare una pagina per modificargli i parametri al
volo.
L'ho messo in produzione su quattro macchine e finora non mi ha dato
problemi. Poi, si sa, la sfiga la fa da padrona e sicuramente troverete tutti
i bug possibili e immaginabili di questo mondo. Comunque ci sono i
sorgenti... :P
Se ci volete dare un'occhiata lo trovate su
http://www.bandasprecata.com/java/util/utils.html
 (che è la mia macchina di
test, quindi non provate ad accederci la notte). Non mi venite a dire che i
css non funzionano con Netscape però. :P
Ciao,
 Stefano
----------
"X WindowSSS, teSSSoro mio... lo odieremo per SSSempre"
Bill Gollum
----------