Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Too many connections

Estas en el tema de Too many connections en el foro de Mysql en Foros del Web. Hola a todos. Tengo un problema muy grave, les cuento un poco. Acabo de comenzar a trabajar en una empresa que tiene un portal sumamente ...
  #1 (permalink)  
Antiguo 01/04/2008, 08:16
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 22 años, 3 meses
Puntos: 3
Too many connections

Hola a todos. Tengo un problema muy grave, les cuento un poco.

Acabo de comenzar a trabajar en una empresa que tiene un portal sumamente grande, mi trabajo aquí es ser el encargado sobre el desarrollo de un nuevo portal, pero ahorita estamos con problemas en este portal. Su programación es muy mala y nunca cierra la conexión a la base de datos casa vez que se conecta, con PHP, y se para cayendo.

Ahorita no vale la pena pasearme x cada archivo (que son miles) y ver si cierra o no la conexión y eso porque en dos meses salimos con el nuevo portal, quisiera saber si alguien tiene alguna idea de cómo solucionar este problema.

Gracias
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
  #2 (permalink)  
Antiguo 02/04/2008, 04:09
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: Too many connections

Has mirado la definición del usuario que esteis usando? Podria tener un numero determinado de conexiones posibles, aumentarlo hos daria la solución que buscas.

Quim
  #3 (permalink)  
Antiguo 02/04/2008, 07:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Re: Too many connections

Tienes un problema con los threads. Es un problema clásico de PHP, sobre todo en sus versiones anteriores a la 5.0.
En principio, deberías postear esto en el foro correcto, ya que el problema es la conexión CON MySQL y no MySQL. De todos modos te puedo dar una ayuda.
El problema, que conocemos los que programamos en .NET, es que al crear un objeto MysqlConnection, OleDbConenction, o cualquiera de esos, es que cerrar la conexión, no significa terminar con el proceso (thread) que le dio vida. Ese proceso está en estado "sleep", es decir, dormido. Existe, pero no hace nada. Si le dieras nuevamente Open, tendrías otro ID de conexión con el mismo proceso.
El tema es que tienes que "matar" el proceso. Si has usado Linux alguna vez, sabes a qué me refiero. Para el caso, deberías usar (PHP5) una función que le indica al server que elimine el thread: mysqli_kill ( mysqli $identificador_de_enlace , int $processid ).
Espero que esto te sirva.
  #4 (permalink)  
Antiguo 02/04/2008, 15:55
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Too many connections

Asi es! utilizan PHP 4... pero cómo hago para hacerlo en PHP4? se me ocurre hacer un cron que corra cada hora para que mate todas las conexiones. Se puede? alguna idea? o programar el MySQL para que lo haga?

Gracias por tu consejo
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
  #5 (permalink)  
Antiguo 02/04/2008, 16:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Re: Too many connections

Técnicamente se puede. Deberías programar el cron para recorrer los threads y verificar si están dormidos más de X tiempo, matarlos si y sólo si le pertenecen a MySQL.
No recuerdo si desde PHP le puedes indicar el lifetime al thread de conexión. Si así fuese sería otra posibilidad.

Después me fijo con más detalle si se puede controlar desde MySQL mismo. Debería haber un modo.
  #6 (permalink)  
Antiguo 02/04/2008, 17:09
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: Too many connections

Hola
Esto es un tema de programación y mas especifico de PHP
Los métodos de php para conectarse son el mysql_connect y el mysql_pconnect
cada uno tiene un comportamiento distinto, cuando usas mysql_connect automáticamente cierra la conexión al finalizar el script, o si deseas puedes usar mysql_close().
Si usas mysql_pconnect abres un una conexión persistente lo cual no se cierra ni con mysql_close.

Verifica bien que método estas usando.

saludos
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 09:50.