Foros del Web » Programando para Internet » ASP Clásico »

Ayudenme Con Error Grave Por Favor

Estas en el tema de Ayudenme Con Error Grave Por Favor en el foro de ASP Clásico en Foros del Web. Hola, perdon el titulo pero estoy desesperado. Estoy haciendo un sitio para un cliente que es basicamente un sitio de musica (noticias, reviews de discos, ...
  #1 (permalink)  
Antiguo 14/02/2006, 06:42
 
Fecha de Ingreso: enero-2002
Ubicación: Mar del Plata
Mensajes: 243
Antigüedad: 23 años, 3 meses
Puntos: 0
Ayudenme Con Error Grave Por Favor

Hola, perdon el titulo pero estoy desesperado.

Estoy haciendo un sitio para un cliente que es basicamente un sitio de musica (noticias, reviews de discos, etc). El sitio esta online hace 2 o 3 meses, todo iba bien pero hoy entre y me salio este cartel:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[MySQL][ODBC 3.51 Driver]Too many connections


Me quiero morir porque no se como arreglarlo, todavia no me contestaron de soporte tecnico del hosting pero estoy seguro por lo que lei que debe ser que uso recordsets para conectarme a la base de datos MYSql.

El tema es que uso dreamweaver MX y no se conectarme a la base que no sea con el clasico recordset de conexion, en la pagina principal uso 4 recordsets, en las demas uso menos, no se porque me da el error, todas las conexiones tienen al final de la pagina el codigo para cerrar la conexion a la base de datos como este:

<% mi_conexion.Close()
Set mi_conexion = Nothing
%>

Por favor que puedo hacer?? pierdo el trabajo sino arreglo esto y el tema es que no se hacerlo de otra forma, escuche que GETROWS es mejor pero no entiendo los ejemplos...

Por ejemplo el codigo de conexion de un recordset generado en dreamweaver es como este:

<%
Dim top_artists
Dim top_artists_numRows

Set top_artists = Server.CreateObject("ADODB.Recordset")
top_artists.ActiveConnection = MM_Eomtest_STRING
top_artists.Source = "SELECT id, idartista FROM MIBASE.top_artists ORDER BY voto DESC"
top_artists.CursorType = 0
top_artists.CursorLocation = 2
top_artists.LockType = 1
top_artists.Open()

top_artists_numRows = 0
%>

Como transformo esto en getrows ?? Tengo que modificar los demas campos dinamicos para que funcione ??

ADJUNTO AQUI UNA URL DONDE PUEDEN DESCARGAR LA PAGINA QUE CREO YO ME GENERA ESE ERROR, NO PIDO QUE LO HAGAN POR MI PERO QUE AL MENOS ALGUIEN PUEDA ANALIZARLA A VER SI ESTE ES EL PROBLEMA. POR FAVOR !

http://www.rocklatinoonline.com/error.zip

POR FAVOR REALMENTE NECESITO AYUDA

GRACIAS

Última edición por roroland; 14/02/2006 a las 07:04
  #2 (permalink)  
Antiguo 14/02/2006, 17:45
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
mmm, no se dónde leiste que es por el uso de recordSet's, pero las referencias de las diferentes versiones de MySQL dicen otra cosa.

Indican que es por el valor muy bajo que tiene la variable max_connections e indican como solucionarlo. Bueno, eso para el error: [MySQL][ODBC 3.51 Driver]Too many connections
  #3 (permalink)  
Antiguo 15/02/2006, 04:23
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
El uso de getRows es muy secillo:

<%
Dim top_artists
Dim top_artists_numRows

Set top_artists = Server.CreateObject("ADODB.Recordset")
top_artists.ActiveConnection = MM_Eomtest_STRING
top_artists.Source = "SELECT id, idartista FROM MIBASE.top_artists ORDER BY voto DESC"
top_artists.CursorType = 0
top_artists.CursorLocation = 2
top_artists.LockType = 1
top_artists.Open()
' Si lo usas con parametros: getRows(10) --> toma los 10 primeros
variableArray = top_artists.getRows
top_artists_numRows = 0
%>

Luego su uso es como cualquier array:
For x = 0 to UBound(variableArray ' Registros
for y = 0 to 1 ' Campos
response.write variableArray(y,x)
next
next


En cuanto al tema de las conecciones, es lo que dice Myakire. ¿Cuantos accesos a la BD tienes por pagina y de media?


Un saludo
  #4 (permalink)  
Antiguo 15/02/2006, 08:04
 
Fecha de Ingreso: enero-2002
Ubicación: Mar del Plata
Mensajes: 243
Antigüedad: 23 años, 3 meses
Puntos: 0
Gracias a todos, aparentemente el error fue por un problema en el server de Mysql del proveedor de hosting.

Respondiendo a tu pregunta tammander, estoy usando un promedio de 3 o 4 recordsets por pagina, no se algunos me dicen que no es mucho para Mysql, otros dicen que si...
No se cual es la verdad realmente. No me importa tanto si la pagina esta algo lenta a causa de no usar el mejor codigo para esto, lo unico que deseo evitar es que el sitio siga online sin errores.

Gracias a todos por su ayuda
  #5 (permalink)  
Antiguo 15/02/2006, 10:12
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Eso es poco respecto a lo usado habitualmente. Ten en cuenta que la cantidad de conexiones que una BD decentita (MySQL, MSSQL principalmente) soporta no depende solo de su motor sino tambien de como se haya configurado el servidor, de su propia capacidad física (RAM y micro principalmente) y de el bandwidth disponible (esto repercute mucho mas de lo que se cree). En cualquier servidor mas o menos decente (no dedicado) suelen haber entre 50 y 100 usuarios con sus Sites, Ftps, BDs, CGIs y demas servicios. Si el proveedor es mas decente tendrá uno o varios servers dedicados a suministrar bases de datos....

No me enrollo mas solo decirte que tengo paginas backend con mas de 10 conexiones a la BD (entre recordset y commands) y el frontend andando a la vez (algunos con mas de 4 conexiones) y nunca han dado problemas. La mayoria soportan entre 30 y 150 conexiones a la vez (entre 400 y 1500 accesos al dia) y nunca han caido por culpa del BD (por otras cosas si )

Otra cosa son los webs con mas de 10000 accesos al dia... eso es otra cosa.



Un saludo
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 13:55.