Excepcion no controlada error de caducidad

13/03/2006 - 16:09 por Ryuyi | Informe spam
Hola tngo un problema me sale este mensaje error
cuando me voy desplazando entre registros luego de una busqueda cuando llego
mas o menos en el registro 112
de repente me sale este error alguien sabe porq sucede o como puedo
solucionarlo gracias

Excepción no controlada del tipo 'System.InvalidOperationException' en
system.data.dll

Información adicional: Valor de tiempo de espera caducado. El período de
tiempo de espera expiró antes de obtener una conexión del grupo. Esto puede
suceder porque todas las conexiones de la agrupación estaban en uso y se
alcanzó el máximo tamaño del grupo.

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
13/03/2006 - 16:57 | Informe spam
"Ryuyi" wrote in message
news:
Hola tngo un problema me sale este mensaje error
cuando me voy desplazando entre registros luego de una busqueda cuando
llego mas o menos en el registro 112
de repente me sale este error alguien sabe porq sucede o como puedo
solucionarlo gracias

Excepción no controlada del tipo 'System.InvalidOperationException' en
system.data.dll

Información adicional: Valor de tiempo de espera caducado. El período de
tiempo de espera expiró antes de obtener una conexión del grupo. Esto
puede suceder porque todas las conexiones de la agrupación estaban en uso
y se alcanzó el máximo tamaño del grupo.



Eso es que vas abriendo conexiones y se te olvida cerrarlas. De forma
predeterminada, el pool de conexiones tiene un límite de 100. Cada vez que
abres una conexión nueva, sin haber cerrado ninguna anterior, se consume una
conexión del pool. Cuando se han agotado las 100, si se intenta abrir otra,
se queda parado esperando que se cierre alguna de las anteriores. Al cabo de
20 segundos (por defecto) de espera, da un error de timeout si no se cierra
ninguna de las conexiones que ya estaban en uso.
Respuesta Responder a este mensaje
#2 Ryuyi
13/03/2006 - 19:29 | Informe spam
Mi clase para conectar
Protected Function Conectar() As SqlConnection

Dim strCon As String

Dim conTemp As System.Data.SqlClient.SqlConnection

strCon = "server=" + Servidor + ";" _

+ "database=" + DB + ";uid=" + Nombre() _

+ ";pwd=" + password() + ";"

conTemp = New SqlConnection(strCon)

conTemp.Open()

Return conTemp

End Function

Protected Function ComenzarTransaccion() As SqlTransaction

Dim conTemp As SqlConnection

conTemp = Conectar()

Return conTemp.BeginTransaction()

End Function



Mi clase contratos con sus metodo




Public Overridable Function BuscarCONTRATO() As Data.DataSet

Dim adaTemp As SqlDataAdapter

Dim dtsTemp As Data.DataSet

Dim prnCodigo As SqlParameter

Dim con As SqlConnection

Dim trnTemp As SqlTransaction

Dim cmdTemp As SqlCommand

Dim prnNroContrato As SqlParameter

prnNroContrato = New SqlParameter("@NroContrato", SqlDbType.VarChar, 30)

prnNroContrato.Value = strNroContrato

trnTemp = ComenzarTransaccion

con = trnTemp.Connection

cmdTemp = New SqlCommand("CONTRATO_Buscar_Nombre", con)

cmdTemp.CommandType = CommandType.StoredProcedure

cmdTemp.Parameters.Add(prnNroContrato)

cmdTemp.Transaction = trnTemp

Try

adaTemp = New SqlDataAdapter(cmdTemp)

dtsTemp = New Data.DataSet

adaTemp.Fill(dtsTemp, "CONTRATO")

trnTemp.Commit()

Return dtsTemp

Catch ex As Exception

trnTemp.Rollback()

MsgBox("NO SE ENCONTRO NINGUN REGISTRO INTENTE NUEVAMENTE" + vbNewLine +
"DETALLE:" + vbNewLine + ex.Message.ToUpper, MsgBoxStyle.Critical,
"MENSAJE")

Finally

If Not con Is Nothing AndAlso con.State = ConnectionState.Open Then

con.Close()

End If

End Try

End Function






La inerfaz de usuario al llamar a la clase y su metodo

Private Sub Buscar()

Dim objContrato As New BRL.cls_Contractos

objContrato.NroContrato = UCase(TxtNroContrato.Text)

dtsContrato = objContrato.BuscarCONTRATO

Cantidad = dtsContrato.Tables("CONTRATO").Rows.Count

sbpCantidad.Text = "Cantidad : " + System.Convert.ToString(Cantidad)

Indice = 0

MostrarContrato()

End Sub

Private Sub MostrarContrato()

Dim a As Boolean

If dtsContrato.Tables("CONTRATO").Rows.Count > 0 Then

a = True

Else

a = False

End If

If a Then

lblRegistro.Text = "Registro : " + System.Convert.ToString(Indice + 1)

txtCodigo.Text = dtsContrato.Tables("CONTRATO").Rows(Indice)("Codigo")

TxtAdministrador.Text dtsContrato.Tables("CONTRATO").Rows(Indice)("Administrador")

TxtNroContrato.Text dtsContrato.Tables("CONTRATO").Rows(Indice)("NroContrato")

CmbTipoContrato.SelectedValue dtsContrato.Tables("CONTRATO").Rows(Indice)("Tipocontrato")

CmbRenovacion.SelectedItem dtsContrato.Tables("CONTRATO").Rows(Indice)("Renovacion")

TxtDescripcion.Text dtsContrato.Tables("CONTRATO").Rows(Indice)("Descripcion")

TxtProveedor.Text = dtsContrato.Tables("CONTRATO").Rows(Indice)("Proveedor")

TxtEmpresa.Text = dtsContrato.Tables("CONTRATO").Rows(Indice)("Empresa")

TxtPlazodeContrato.Text dtsContrato.Tables("CONTRATO").Rows(Indice)("PlazodeContrato")


CmbPais.SelectedValue = dtsContrato.Tables("CONTRATO").Rows(Indice)("Pais")

'***********************************************************

Dim CiudadData As New System.Data.DataSet

Dim objCiudad As New BRL.Cls_Combo_Contratos

objCiudad.Codigo = CmbPais.SelectedValue

CiudadData = objCiudad.COMBO_CIUDAD_Buscar

CmbCiudad.DataSource = CiudadData.Tables("CIUDAD")

CmbCiudad.DisplayMember = "Nombre"

CmbCiudad.ValueMember = "Codigo"

'--********************************************************

CmbCiudad.SelectedValue dtsContrato.Tables("CONTRATO").Rows(Indice)("Ciudad")

CmbGarantia.SelectedItem dtsContrato.Tables("CONTRATO").Rows(Indice)("Garantia")

TxtTipoGarantia.Text dtsContrato.Tables("CONTRATO").Rows(Indice)("TipoGarantia")

TxtMontoGarantia.Text dtsContrato.Tables("CONTRATO").Rows(Indice)("MontoGarantia")

TxtVencimientoG.Text dtsContrato.Tables("CONTRATO").Rows(Indice)("VencimientoG")

CmbMoneda.SelectedValue dtsContrato.Tables("CONTRATO").Rows(Indice)("Moneda")

TxtDolares.Text = dtsContrato.Tables("CONTRATO").Rows(Indice)("Dolares")

TxtBolivianos.Text dtsContrato.Tables("CONTRATO").Rows(Indice)("Bolivianos")

CmbTipoPago.SelectedItem dtsContrato.Tables("CONTRATO").Rows(Indice)("TipoPago")

TxtFechaInicio.Text dtsContrato.Tables("CONTRATO").Rows(Indice)("FechaInicio")

TxtFechaFinal.Text dtsContrato.Tables("CONTRATO").Rows(Indice)("FechaFinal")


TxtPagado.Text = dtsContrato.Tables("CONTRATO").Rows(Indice)("Pagado")

TxtFecha_Update.Text = dtsContrato.Tables("CONTRATO").Rows(Indice)("Fecha")

TxtUsuario.Text = dtsContrato.Tables("CONTRATO").Rows(Indice)("Usuario")

TxtEstado.Text = dtsContrato.Tables("CONTRATO").Rows(Indice)("Estado")

btnNuevo.Enabled = False

btnModificar.Enabled = True

btnEliminar.Enabled = True

BtnBuscar.Enabled = True

BtnAvanze_true()

If CmbGarantia.SelectedItem = "NO" Then

TxtTipoGarantia.Enabled = False

TxtVencimientoG.Enabled = False

TxtMontoGarantia.Enabled = False

End If

If CmbGarantia.SelectedItem = "SI" Then

TxtTipoGarantia.Enabled = True

TxtVencimientoG.Enabled = True

TxtMontoGarantia.Enabled = True

End If

Else

MessageBox.Show("No se encontro ningun registro en la Busqueda")

btnModificar.Enabled = False

btnEliminar.Enabled = False

BtnAvanze_false()

TxtTipoGarantia.Enabled = True

TxtVencimientoG.Enabled = True

TxtMontoGarantia.Enabled = True

TxtTipoGarantia.Text = ""

TxtVencimientoG.Text = CDate(#1/1/2000#)

TxtMontoGarantia.Text = ""

End If

End Sub



Alguna idea q estoy haciendo mal gracias
Respuesta Responder a este mensaje
#3 Alberto Poblacion
13/03/2006 - 19:52 | Informe spam
"Ryuyi" wrote in message
news:%
Mi clase para conectar
[...] Alguna idea q estoy haciendo mal gracias



Tiene bastante buen aspecto. Yo cambiaría el
IF...con.State=ConnectionState.Open por con.State<>ConnectionState.Closed,
por si acaso entra en el Finally con algún estado que no sea Open, por
ejemplo, Broken, Executing o Fetching.

Si con eso no se arregla, pon una instrucción de traza
(System.Diagnostics.Trace.WriteLine(...)) en la instrucción que abre la
conexión y otra en donde se cierra, ejecuta el programa, y verifica en el
listado de la traza si están todas las aperturas emparejadas con un cierre.
Respuesta Responder a este mensaje
#4 Ryuyi
17/03/2006 - 04:43 | Informe spam
ya encontre el error gracias no se estaba cerrando las conexiones bien
gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida