problema con hilos dentro del tomcat

karloss_
11 de Febrero del 2005
mi jproblema estriba que tengo un hilo que limpia de un pool de conexiones, las conexiones que estan superan un tiempo predeterminado.
pero el hilo sin indicarle la sentencia start(); se pone a funcionar con simplemente crear el objeto hilo.
el hilo es creado dentro de un ServletContextListener.
Alguien tiene algun tipo de explicación? gracias

Anonimo
11 de Febrero del 2005
El tomcat tiene su propio pool de conexiones no tienens que programar nada amigo. Solo configurarlo y utilizarlo.

en la carpeta de conf/Catalina/localhost estan los xml de configuración modifica tu xml de tu aplicacion similar a la siguiente:

<?xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="C:/gabs" path="/gabs" reloadable="true" swallowOutput="true" workDir="workCatalinalocalhostgabs">
<Resource name="jdbc/Conecta" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/Conecta">
<parameter>
<name>maxWait</name>
<value>10000</value> //tiempo de espera
</parameter>
<parameter>
<name>maxActive</name>
<value>8</value> //maximo numero de conexiones
</parameter>
<parameter>
<name>password</name>
<value>tu_password</value> // tu contraseña de la base
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@127.0.0.1:1565:base</value> // urlconection, esta es de oracle
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value> // class driver
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value> // numero maximo de conexiones sin hacer nada o en espera
</parameter>
<parameter>
<name>username</name>
<value>tu_nombre_de_usuario</value> // nombre de usuario
</parameter>
</ResourceParams>
</Context>

Con esto creas tu pool de conexiones manejado por tomcat, mas información en la documentación de tomcat

y tu jsp puede ser como este:

<%@ page contentType="text/html; charset=iso-8859-1" language="java"
import ="java.sql.ResultSet"
import ="java.sql.Connection"
import ="java.sql.PreparedStatement"
import ="java.sql.SQLException"
import ="javax.naming.Context"
import ="javax.naming.InitialContext"
import ="javax.naming.Context"
import ="javax.sql.DataSource"
import ="javax.naming.NamingException"
errorPage="" %>
<html>
<head>
<title>Ejemplo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<%

Connection conn;
String cadSql = "Select sysdate from Dual";

// Trae una conexión del pool de conexiones
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/Conecta");
conn = ds.getConnection();

PreparedStatement pstmt = conn.prepareStatement(cadSql);
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
out.print(rs.getString(1));
}
rs.close();
pstmt.close();
conn.close();
%>
</body>
</html>


Suerte ...
: [