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

Error: Todas las conexiones en uso.

Estas en el tema de Error: Todas las conexiones en uso. en el foro de .NET en Foros del Web. Hola a todos, tengo una aplicación desarrollada en .NET (C#,ms SqlServer) la cual de vez en cuando falla con el siguiente error: [InvalidOperationException: Timeout expired. ...
  #1 (permalink)  
Antiguo 07/03/2005, 05:19
Avatar de cableh  
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 19 años, 4 meses
Puntos: 0
Error: Todas las conexiones en uso.

Hola a todos, tengo una aplicación desarrollada en .NET (C#,ms SqlServer) la cual de vez en cuando falla con el siguiente error:

[InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.]

En la apli todas las conexiones que creo las declaro siempre con using, por ejemplo:

using (SqlConnection myConnection = PortalSettings.SqlConnectionString)
{
using(SqlCommand myCommand = new SqlCommand("UDT_ExistsFieldsIsSelection", myConnection))
{.....
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
}

Realmente no se lo que ocurre, ni de donde puede venir el error, ni cómo solucionarlo.
Y lo peor es que no consigo que falle de una forma 'racional', falla cuando quiere (o eso parece).
Si alguno me podéis dar alguna idea os lo agradecería.
Salu2.

Última edición por cableh; 07/03/2005 a las 05:28
  #2 (permalink)  
Antiguo 08/03/2005, 03:03
Avatar de cableh  
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 19 años, 4 meses
Puntos: 0
¿Cómo la hago fallar? Actualizando, compulsivamente, una página que contiene varios módulos de un mismo tipo (es un módulo complejo desde el que se llama varias veces a la BD, con datareaders y datatables), unas veces se rompe rápido y otras tarda mucho. En local no he conseguido que falle poniendo un sólo módulo de este tipo.
¿Alguna idea?
Gracias.
  #3 (permalink)  
Antiguo 08/03/2005, 13:08
Avatar de cableh  
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 19 años, 4 meses
Puntos: 0
¿Podrían ser dos datareaders que los pongo como DataSource de dos cuadros de lista?

Los he cambiado por dos ArrayList y parece que va mejor la cosa.

Antes:

lb1.DataSource=dr1;
lb1.DataTextField= ...

lb2.DataSource=dr2;
...

Después:

ArrayList arr1 = new ArrayList();
using(SqlDataReader dr1 = ...)
{
while (dr1.Read())
arr1.Add(new Option(int.Parse(drRoles1[0].ToString()), drRoles1[1].ToString()));
dr1.Close();
}
lb1.DataSource=arr1;
listBox1.DataTextField="Val";
...

De todas formas si tenéis alguna opinión la agradecería.
Ciao.
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 18:28.