elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  como controlar un error de desconexión?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como controlar un error de desconexión?  (Leído 3,558 veces)
Frost

Desconectado Desconectado

Mensajes: 260


go Debian


Ver Perfil WWW
como controlar un error de desconexión?
« en: 23 Diciembre 2011, 14:44 pm »

Hola
Necesito ayuda para controlar un error de desconexion, cada 5 seg llamo a un procedimiento almacenado que esta en un servidor externo y si dentro de ese tiempo ocurre una desconexion, a pesar que modifique el timeout de la conexión, el sistema queda tratando de completar el ciclo, aun que la desconexion sea de menos de un segundo

quien me puede orientar un poco para saber como se manejan este tipo de incidencias?   :huh:

saludos


En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: como controlar un error de desconexión?
« Respuesta #1 en: 23 Diciembre 2011, 15:12 pm »

Con try/catch como casi cualquier error, y chequeando el estado de la conexión

¿Puedes mostrar el código que utilizas?

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Frost

Desconectado Desconectado

Mensajes: 260


go Debian


Ver Perfil WWW
Re: como controlar un error de desconexión?
« Respuesta #2 en: 23 Diciembre 2011, 15:19 pm »

Son varias lineas de codigo pero es en esta parte donde llamó al procedimiento almacenado, tmb chequeo el estado de la conexión, el timer1 se ejecuta cada 5 segundos

Código
  1. Private Sub ExecStoredProcedure()
  2.  
  3.        Try
  4.  
  5.            ' conexion con TIMEOUT= 4seg
  6.            If sqlConnection.State = ConnectionState.Closed Then
  7.                sqlConnection.Open()
  8.            End If
  9.  
  10.  
  11.            ' conexion con TIMEOUT= 3600 seg
  12.            If sqlConnection2.State = ConnectionState.Closed Then
  13.                sqlConnection2.Open()
  14.            End If
  15.  
  16.  
  17.            sqlCommand.Connection = sqlConnection
  18.            sqlCommand.CommandType = CommandType.StoredProcedure
  19.            sqlCommand.CommandText = "prcNIHoraServidor"
  20.            sqlCommand.ExecuteNonQuery()
  21.  
  22.            lblCheckStatus.Visible = True
  23.            lblCheckStatus.Text = "Conectado"
  24.            lblCheckStatus.ForeColor = Color.Green
  25.            BtnGrabar.BackColor = Color.Transparent
  26.            BtnGrabar.Enabled = True
  27.  
  28.           Catch ex As Exception
  29.  
  30.            MsgBox(ex.Message, MsgBoxStyle.Critical, AcceptButton)
  31.            lblCheckStatus.Visible = True
  32.            lblCheckStatus.Text = "Desconectado"
  33.            lblCheckStatus.ForeColor = Color.Red
  34.            BtnGrabar.BackColor = Color.Red
  35.            BtnGrabar.Enabled = False
  36.  
  37.        End Try
  38.  
  39.    End Sub
  40.  
  41.  
  42.    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  43.  
  44.        ExecStoredProcedure()
  45.  
  46.        '==================================================================================
  47.        '=========================eliminar los Console.WriteLine===========================
  48.        '==================================================================================
  49.  
  50.        If sqlConnection.State = ConnectionState.Open Then
  51.            Console.WriteLine("=========================================Open=========================================")
  52.        ElseIf sqlConnection.State = ConnectionState.Closed Then
  53.            Console.WriteLine("=========================================Closed=========================================")
  54.        ElseIf sqlConnection.State = ConnectionState.Broken Then
  55.            Console.WriteLine("=========================================Broken=========================================")
  56.        End If
  57.  
  58.    End Sub

me sale este mensaje de texto


saludos
« Última modificación: 23 Diciembre 2011, 15:27 pm por Frost » En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: como controlar un error de desconexión?
« Respuesta #3 en: 23 Diciembre 2011, 15:44 pm »

Lo que no termino de entender es "el sistema queda tratando de completar el ciclo", si sigues invocando al timer luego de que ha habido error es algo lógico, aunque quizás no estoy comprendiendo tu problema :-\.

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Frost

Desconectado Desconectado

Mensajes: 260


go Debian


Ver Perfil WWW
Re: como controlar un error de desconexión?
« Respuesta #4 en: 23 Diciembre 2011, 16:44 pm »

he logrado ir filtrando el error y me encuentro que solo falla cuando ha ocurrido una desconexion y trato de hacer un UPDATE en cualquier procedimiento almacenado o tabla, obviamente trato de hacer el UPDATEuna vez que la conexión esta ON
« Última modificación: 23 Diciembre 2011, 16:59 pm por Frost » En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: como controlar un error de desconexión?
« Respuesta #5 en: 23 Diciembre 2011, 17:21 pm »

Sigo sin entender, ¿qué método estas utilizando para el update? ¿Con que estas leyendo los datos?

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
gmarrero

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Re: como controlar un error de desconexión?
« Respuesta #6 en: 3 Abril 2013, 03:40 am »

Frost

Entiendo perfectamente lo que te pasa o pasaba (ya hace bastante tiempo que trataste el tema) y a la verdad estoy casi al tirar la toalla en lo que estoy haciendo.

En mi caso cuando trato de hacer un SELECT y tarda mucho la clase el SQLClient se me desconecta y muchas cosas que dependen de ella se cuelgan.

A la verdad que es mucha información la que le pido al controlador que haga ya que en estos momentos la BD está en 12 GB físico y hay más de 30 millones de registros y contando.

Estoy viendo la posibilidad de aplicar particionamiento vertical a la tabla de la BD que manipulo para ver que sale.

Si me da resultado le comento.

Saludos
En línea

______________________________________________
Si Dios es con nosotros!, ¿quien contra nosotros?
.::IT::.

Desconectado Desconectado

Mensajes: 167



Ver Perfil
Re: como controlar un error de desconexión?
« Respuesta #7 en: 3 Abril 2013, 06:36 am »

Frost usa el evento StateChange de SqlConnection.

gmarrero, porque tienes la necesidad de consultar los 30 millones de registro de golpe, deberías consultar a demanda (paginando los resultados)
En línea

Simplemente .::IT::.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
error al controlar tablas
Programación Visual Basic
erick185 1 1,225 Último mensaje 31 Marzo 2006, 16:50 pm
por karmany
como Controlar mi aplicacion con el celular. vb.net
Programación Visual Basic
jmcha 2 3,684 Último mensaje 18 Octubre 2006, 07:12 am
por jmcha
¿Cómo cambio el período de desconexión de DHCP?
Redes
Felipelf95 3 3,358 Último mensaje 6 Diciembre 2013, 15:42 pm
por HdM
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines