Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/09/2005, 19:54
msi
 
Fecha de Ingreso: marzo-2005
Mensajes: 70
Antigüedad: 19 años, 2 meses
Puntos: 0
Pool conexiones sin utilizar ctx.lookup

Hola, no se si esto es posible o no pero lo pregunto por si acaso. La idea es establecer una conexion a una BD mediane un pool de conexiones. Por lo que he visto está la manera tradicicional de conectar a una BD:

Class.forName("org.gjt.mm.mysql.Driver").newInstan ce();
con = DriverManager.getConnection("jdbc:mysql://localhost/DATABASE?user=X&password=Y");

Y luego está el pool de conexiones con DataSource (que se supone mejor):

Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("jdbc/confluence");
Connection con = ds.getConnection("myUserName", "myPassword");


poniendo en web.xml:

<resource-ref>
<description>Connection Pool</description>
<res-ref-name>jdbc/confluence</res-ref-name>
<res-type>javax.sql.Datasource</res-type>
<res-auth>Container</res-auth>
</resource-ref>


y poniendo en server.xml de Tomcat:

<Resource name="jdbc/confluence" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/confluence">
...
<parameter>
<name>username</name>
<value>yourusername</value>
</parameter>
<parameter>
<name>password</name>
<value>yourpassword</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost/DATABASE</value>
</parameter>
</ResourceParams>


Según he visto, al escribir esta línea: DataSource ds = (DataSource) ctx.lookup("jdbc/confluence"); es obligatorio añadir unas líneas al fichero server.xml de Tomcat pero ¿Se puede crear el pool de conexiones sin utilizar el ResourceParams en server.xml? Imaginad que tenemos una aplicación web en un hosting de pago y no podemos tocar el fichero server.xml de tomcat.

No he encontrado solución (igual no la tiene) aunque he leido que se podría utilizar un fichero.properties y a partir de él sacar los parámetros:
driver=org.gjt.mm.mysql.Driver
url=jdbc\:mysql\://localhost/DATABASE
user=X
password=Y


Supongo que todo el mundo podrá modificar el server.xml pero he estado investigando unas horas para ver si es posible otra opción y no la he encontrado.

Si sabeis otras formas de crear pools de conexiones, aquí estaré para aprender.