Apache - APACHE SE MUERE CUANDO PASA UN TIEMPO LARGO

 
Vista:

APACHE SE MUERE CUANDO PASA UN TIEMPO LARGO

Publicado por Javier (2 intervenciones) el 23/11/2006 15:05:45
Hola,

Mi problema es que monto la aplicacion, funciona perfectamente, pero cuando pasa un tiempo sin que nadie entre, se queda como colgada, he comprobado si era el servidor apache, pero otras aplicaciones en el mismo servidor funciona perfectamente, y la base de datos tampoco es porque sigue contestando a mis peticiones desde fuera del servidor, asi que he intentado hacer pruebas, y no se que puede ser. Tengo un inicializador de contexto que hace lo siguiente

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public final class ContextListener implements ServletContextListener {


private ServletContext context = null;

public void contextInitialized (ServletContextEvent se) {
context = se.getServletContext ();
try {
ICdb ivdb = new ICdb ();
context.setAttribute ("BaseDatos", ivdb);
context.setAttribute("usuario",null);
}
catch (Exception e) {
context.log ("No se pudo crear el atributo BaseDatos: " + e.getMessage () + " " + e.getStackTrace());
}
}

public void contextDestroyed (ServletContextEvent servletContextEvent)
{
ICdb ivdb = (ICdb) context.getAttribute ("BaseDatos");
ivdb.close();
context.removeAttribute ("BaseDatos");
context.removeAttribute("usuario");
this.context = null;
}

}

donde el constructor de ICdb hace lo siguiente

public ICVdb() throws Exception {
try {
InitialContext initialContext = new InitialContext();
Context envContext = (Context) initialContext.lookup("java:comp/env");
DataSource dataSource = (DataSource) envContext.lookup("jdbc/IC");
this.connection = dataSource.getConnection();
} catch (Exception e) {
throw new Exception( "No se pudo abrir la base de datos IC: " + e.getMessage() + " " + e.getStackTrace());
}
}

protected synchronized Connection getConnection() {
while (this.connectionFree == false) {
try {
wait();
} catch (InterruptedException e) {
System.out.println("Ecepcion generada en <<getConnection>>"+ e.getStackTrace());
}
}
this.connectionFree = false;
notify();
return this.connection;
}

protected synchronized void releaseConnection() {
while (this.connectionFree == true) {
try {
wait();
} catch (InterruptedException e) {
System.out.println("Ecepcion generada en <<releaseConnection>>"+ e.getStackTrace());
}
}
this.connectionFree = true;
notify();
}

y el Dataset lo tengo asi configurado en el XML de la aplicacion

<?xml version="1.0" encoding="UTF-8"?>
<Context
crossContext="true"
reloadable="true">
<Resource
auth="Container"
name="jdbc/IC"
type="javax.sql.DataSource"
password="xxxxxxxxx"
driverClassName="org.gjt.mm.mysql.Driver"
maxIdle="0"
maxWait="10000"
removeAbandoned="true"
logAbandoned="true"
username="root"
url="jdbc:mysql://172.26.0.2:3306/IC?autoReconnect=true"
removeAbandonedTimeout="3000"
maxActive="0"/>
</Context>

¿¿ALGUIEN SABE QUE PUEDE ESTAR OCURRIENDO??, porque se queda colgado de esa manera, la version de apache-tomcat es la 5
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:APACHE SE MUERE CUANDO PASA UN TIEMPO LARGO

Publicado por KITAI (9 intervenciones) el 30/11/2006 15:04:30
Hum
cuando se queda colgada, se queda colgada SOLO tu aplicacion?
si pones un fichero jsp , el tomcat es capaz de servirlo bien en esa situacion?

kitai
www.apache-es.org
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:APACHE SE MUERE CUANDO PASA UN TIEMPO LARGO

Publicado por Javier (2 intervenciones) el 07/12/2006 17:49:43
Es solo la aplicacion, y a ficheros jsp que no acceden a base de datos funciona perfectamente, he estado investigando, y he encontrado esta pagina que describe perfectamente lo que a mi me pasa http://xperienceexperience.blogspot.com/2005/10/tomcat-lost-connection-with-mysql.html pero aun sigo sin encontrar la solucion en el codigo fuente :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:APACHE SE MUERE CUANDO PASA UN TIEMPO LARGO

Publicado por txus (1 intervención) el 03/05/2011 19:11:11
Lo qeu tienes que hacer es un timer en la aplicacion que consulte a la bbdd la hora cada.....10 minutos? asi evitas que el pool se te quede tostado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar