Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ADO
 Error. Too Many Client Tasks
 Foro Bloqueado  Tema Bloqueado


Autor Temas
Katixa
Starting Member

España
28 Posts
Mensajes - 03 Jul 2002 :  19:44:39  Ver Perfil  Enviar Email  Visit Katixa's Homepage
Hola,

Tengo una web en la que todas las hojas funcionan bajo ASP con conexion a bases de datos Access. En todas ellas accedo a uno o más ficheros MDB en cada carga, ya que tengo que mostrar una cabecera con los datos del usuario.

El problema viene desde hace 2 ó 3 dias, que la web ha empezado a dar un error que en ingles viene a ser "Too many client tasks". Este problema surje cuando se ejecuta la linea de apertura del objeto Conexion (ADODB.Connection), y aparentemente se debe a que el servidor a alcanzado el limite de tareas.

Ahora bien... esto a que se debe? Configuracion interna del servidor? Hay alguna forma de saber que objetos estan abiertos o cuantos usuarios tienen una BD abierta?

He revisado las hojas una por una, tengo una hoja ASP dedicada solo a funciones, incluso me he asegurado de que en cada una de ellas cierro y destruyo (Set a Nothing) los objetos RecordSet y Connection.

Realmente no se que hacer ya...

Como nota adicional, indicare que hace poco el servidor de hosting ha notificado que las conexiones ODBC ya no funcionaran, y que hay que usar lo llamado DSNLess. Despues de buscar en Google y consultar paginas sobre ASP, veo que el DSN Less es el sistema que utilizo ahora, por lo que parece que el problema no viene de ahi...

Aun asi, aqui incluyo una funcion de ejemplo, que en concreto sirve para mostrar el Nick de un usuario (se pueden leer las instrucciones para abrir, consultar, y cerrar una base de datos, y siempre lo hago asi):

--------------------
Function fObtenerNick(pCodigo)
Dim rsUsuarios
Dim lCon
Dim lCadena

Set lCon = Server.CreateObject("ADODB.Connection")
Set rsUsuarios = Server.CreateObject("ADODB.RecordSet")

lCon.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("nombre.mdb") & "; PWD=PASSWORDAQUI"

lCadena = "SELECT * FROM BDUS WHERE BDUSCO = " & pCodigo
rsUsuarios.Open lCadena, lCon

fObtenerNick = rsUsuarios.Fields("BDUSNICK")

rsUsuarios.Close
Set rsUsuarios = Nothing
lCon.Close
Set lCon = Nothing
End Function
-----------------------

En todas las hojas de la web y funciones abro y cierro los objetos tal como se muestra aqui.

Gracias por la ayuda.
Saludos.

nicolas
New Member

España
74 Posts
Posted - 04 Jul 2002 :  20:06:47  Ver perfil  Enviar e-mail
Bueno, creo que ya lo estás haciendo bien: lo recomendable es cerrar los recursos utilizados (connection, recordet), justo después de usarlos. Puede que el problema no venga de tus usuarios y tu codigo, sino de otros clientes de tu proveedor (si utilizas un servicio de hosting compartido), que no son tan prudentes como tú. En cualquier caso (y aunque quizás no sirva de mucho), podrías cambiar un par de cosillas:
1) utilizar una cadena de conexión OLEDB en el open de la conexión, si tu proveedor lo permite:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("nombre.mdb")

2) Como parece que tu función "fObtenerNick" sólo necesita el campo "bdusnik", indicarlo expresamente en la SELECT:
"SELECT bdusnik FROM..."

Y si todo sigue igual, habla con tu proveedor

Nicolás Sánchez Ruiz
ESI BarcelonaInicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar