Ciao a tutti,
a seguito di chiacchierata siamo arrivati alla possibilita' di usare
un pool per gestire le connessioni su db.. per cui:
@Marko: spiega! :)
pfiati,
0x412E
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEAREKAAYFAkw8604ACgkQ4bGOEGfZtvOqaQCdH+D0Tnhj6/9h9FHpV/hv/+hY
s1gAn1L9Wv/P8xzY6cuuzZQVfm2RnK+Z
=xsjj
-----END PGP SIGNATURE-----
come ti ho spiegato (voluto spiegare) ieri, e' abbastanza semplice... implementarlo, anche se ogni tanto mi incasino anche io....
1. creare nel file META-INF/context.xml' il tag <Resource>
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource auth="Container" description="Test DB Pool"
name="jdbc/pooldb" type="javax.sql.DataSource"
driverClassName="org.postgresql.Driver" username="postgres"
password="xxxx" url="jdbc:postgresql://localhost/test?charSet=UNICODE"
maxWait="-1" maxActive="5" maxIdle="2" removeAbandoned="true"
removeAbandonedTimeout="50" logAbandoned="true"
validationQuery="select * from dummy;" />
</Context>
2. Nella AbstractServlet (Io ne creo sempre una!) metto la function getConnection(), cosi posso sempre prendere una connessione dal pool
protected Connection getConnection() {
Connection connection = null;
try {
Context init = new InitialContext();
DataSource ds = (DataSource) init.lookup("java:comp/env/jdbc/pooldb");
connection = ds.getConnection();
} catch (NamingException e) {
getLogger().error("Can't retrieve java:comp/env/jdbc/pooldb", e);
} catch (SQLException e) {
getLogger().error("SQLException", e);
} catch (Exception e) {
getLogger().error("Exception", e);
}
return connection;
}
3. Usando JSTL posso semplicemente fare
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<sql:query var="rs" dataSource="jdbc/pooldb">
SELECT firstname, surename FROM customer ORDER BY custId
</sql:query>
<c:forEach var="row" items="${rs.rows}">
.. iterazione
</c:forEach>
4. Link
http://www.devdaily.com/blog/post/java/how-configure-tomcat-dbcp-connection-pool-pooling-postgres
Pero' che ti aiuti... dato che non sono bravo a scrivere spiegazioni.
Saluti
Marco
MaSc
cioppino.NET
Marco Schwarz
Feldweg 5
Handy +39 3314020095
I - 39025 Plaus (BZ)
http://www.cioppino.net/
---------- Original Header -----------
From : jug...@googlegroups.com
To : jug...@googlegroups.com
Cc :
Date : Wed, 14 Jul 2010 00:40:14 +0200
Subject : [JUGTAA] WebApp Java + Pool
> --
> You received this message because you are subscribed to the Google Groups "JUG Trentino Alto Adige Suedtirol" group.
> To post to this group, send email to jug...@googlegroups.com.
> To unsubscribe from this group, send email to jugtaa+un...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/jugtaa?hl=en.
>
>
http://wiki.liquidpub.org/mediawiki/index.php/Database_Guidelines#Accessing_DB_from_an_application
Tenete presente che il problema era convertire un'applicazione
appfuse-light che già usava Hibernate + JDBC, in una che usasse
Hibernate + JNDI (per cui io non ho bisogno di fare "getConnection()"
nel mio codice, ma devo configurare la DataSource per Hibernate). Ci
sono arrivato dopo innumerevoli tentativi e "googlate" :-)
Btw, nel mio caso, ho messo tutta la configurazione nel server.xml,
che è a livello di container, mentre nel Context.xml c'è solo una
reference.
2010/7/14 Marco Schwarz <marco....@cioppino.net>:
--
I watched the stars fall silent from your eyes.