Foros del Web » Programación para mayores de 30 ;) » Java »

Tamaño del pool de conexiones

Estas en el tema de Tamaño del pool de conexiones en el foro de Java en Foros del Web. Tengo una aplicación web hecha en JSP que usa tomcat 5.5.23 y se conecta a una base de datos oracle 9i 9.2.0.1 a través de ...
  #1 (permalink)  
Antiguo 11/05/2007, 11:17
 
Fecha de Ingreso: octubre-2006
Mensajes: 1
Antigüedad: 17 años, 6 meses
Puntos: 0
Tamaño del pool de conexiones

Tengo una aplicación web hecha en JSP que usa tomcat 5.5.23 y se conecta a una base de datos oracle 9i 9.2.0.1 a través de un pool de conexiones.

El problema es que al hacer pruebas de estrés observo que lanza más conexiones de las que están configuradas en el pool y las mantiene abiertas mucho tiempo sin liberarlas. Parece como si no respetara el tamaño del pool.

He hecho de todo y no sé por qué está pasando esto. Si podéis ayudarme os lo agradecería.

El contenido de mi context.xml es el siguiente:

Código:
<Context path="/test" docBase="test" debug="0"
  reloadable="true" >
  <Resource
    name="jdbc/test" auth="Container"
    type="javax.sql.DataSource"
      maxActive="2" maxIdle="1" maxWait="10000"
      removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
      username="test" password="test"
      driverClassName="oracle.jdbc.driver.OracleDriver"
      url="jdbc:oracle:thin:@192.168.1.109:1521:GLOBALDB" />
</Context>
He bajado los valores de maxActive y maxIdle para hacer las pruebas. Inicialmente eran 100 y 30.

La forma de crear la conexión es esta:

Código:
<%
  Context initCtx = new InitialContext();
  Context ctx = (Context) initCtx.lookup("java:/comp/env");
  DataSource fuenteDatos = (DataSource) ctx.lookup("/jdbc/test");
  con = fuenteDatos.getConnection();
  s = con.createStatement();
%>
El código que cierra las conexiones, que está puesto al final del jsp principal, es el siguiente:

Código:
<%-- Cerrar las conexiones --%><%
}
catch(Exception e)
{
// Tratar la excepción
}
finally
{
	try
	{
		if(r != null) r.close();
	}
	catch(Exception e)
	{
	// Tratar la excepción
	}
	try
	{
		if(s != null) s.close();
	}
	catch(Exception e)
	{
	// Tratar la excepción
	}
	try
	{
		if(con != null) con.close();
	}
	catch(Exception e)
	{
	// Tratar la excepción
	}
}
Si me pudierais decir lo que pasa os lo agradecería un montón. Ya no sé qué más hacer.

Muchas gracias y saludos a todos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:05.