none
Error: 19 Physical connection is not usable RRS feed

  • Pregunta

  • Buenas tardes he estado teniendo un problema, realize una app en vb.net y al ejecutar un sp en sql server es un proceso largo de como 2hr a 2:30 hrs en ocasiones si trabaja bien pero en otras, me marca este error de que la conexion no es utilizable, en cuando al tiempo del sp en el codigo de vb lo tengo en 0, me gustaria saber a que podra deberse.

    Saludos y gracias


    asdf


    • Editado Abel Mayorga jueves, 4 de enero de 2018 21:58
    • Cambiado Enrique M. Montejo lunes, 8 de enero de 2018 7:48 Pregunta relacionada con el acceso a datos con SQL Server.
    jueves, 4 de enero de 2018 21:57

Respuestas

  • Hola

    Te recomendaría que elimines la manera que te conectas a la base de datos, tarde o temprano te dará errores así como los que se te presentaron

    Podrías implementar la conexión en un archivo app.confg y usar una key para declarar la cadena de conexión

    <connectionStrings>
        <add name="default" connectionString="Data Source=.;Initial Catalog=Northwind;Integrated Security=True"/>
      </connectionStrings>

    Puedes guiarte de este enlace Archivos de Configuración - Una introducción (1/3)

    Puedes implementar de esta manera tus métodos llamando a la key que contiene la cadena de conexión

    Using cn = New SqlConnection(ConfigurationManager.ConnectionStrings("default").ToString())
                cn.Open()
                'Resto de código  
            End Using

    Recomendación: Al encerrar la declaración del objeto Connection entre un bloque Using ... End Using, nos estaremos asegurando de cerrar la conexión y de destruir los recursos utilizados por el objeto, al finalizar dicho bloque (cuando se ejecute End Using). Con ésto no tenemos que estar pendientes de llamar al método Close (para cerrar la conexión), ni tampoco al método Dispose (para destruir el objeto), por tanto, no es necesario disponer de un procedimiento externo para tales menesteres.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    • Propuesto como respuesta Pablo Rubio viernes, 5 de enero de 2018 20:02
    • Marcado como respuesta Enrique M. Montejo lunes, 8 de enero de 2018 7:47
    viernes, 5 de enero de 2018 18:23

Todas las respuestas

  • Hola Abel Mayorga

    De acuerdo a tu consulta, te recomiendo ir al siguiente enlace(en inglés) que puede serte muy útil.

    https://social.technet.microsoft.com/wiki/contents/articles/2102.how-to-troubleshoot-connecting-to-the-sql-server-database-engine.aspx

    Quedamos al pendiente de cualquier actualización de tu parte.

    Saludos Cordiales.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     _____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    viernes, 5 de enero de 2018 16:36
  • Hola

    ¿Podrías mostrar como te conectas al gestor de base de datos y mostrar el método que llama a ese store procedure?

    Saludos!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    viernes, 5 de enero de 2018 17:20
  • lo manejo por modulos, la de conexion y la de ejecutar el SP.

    este es el de conexion:

    Try
                If cn.State = ConnectionState.Open Then cn.Close()
            Catch ex As Exception
                Open = "Error al Conectar con el servidor:" & ex.ToString
            End Try
            cn = New SSQL.SqlConnection("Data Source=" & Server & ";Database=" & DB & ";User ID=" & User & "; Password=" & Pwd & "; Connect Timeout=0;")

            Try
                cn.Open()
                Open = "OK"
            Catch ex As Exception
                Open = "Error al Conectar con el servidor:" & ex.ToString
            End Try
            Return Open

    y este el de ejecutar el SP

    Try
                cm = New SSQL.SqlCommand()
                cm.CommandText = Str
                cm.CommandType = CommandType.Text
                cm.Connection = cn
                cm.CommandTimeout = 0
                da = New SSQL.SqlDataAdapter(cm)
                ds = New DataSet
                da.Fill(ds)
                If ds.Tables(0).Rows.Count > 0 Then
                    For Each fila As DataRow In ds.Tables(0).Rows
                        get1data = CStr(fila(Field))
                        Exit For
                    Next
                End If
                Return get1data
            Catch ex As Exception
                Return ex.Message
            End Try

    y al ejecutar el SP desde el codigo en VB lo ejecuto en un backgroundworker:

    Dim res As String
            sqlc.Open(SERVER, DATABASE, USER, PWD)
            res = sqlc.get1data("Purchasing_Update_ExcelSheets '" & usuario & "'", "MSG")
            Timer1.Stop()
            MsgBox("La base se actualizo correctamente, " & res, MsgBoxStyle.Exclamation)
            sqlc.close()


    asdf

    viernes, 5 de enero de 2018 18:00
  • Hola

    Te recomendaría que elimines la manera que te conectas a la base de datos, tarde o temprano te dará errores así como los que se te presentaron

    Podrías implementar la conexión en un archivo app.confg y usar una key para declarar la cadena de conexión

    <connectionStrings>
        <add name="default" connectionString="Data Source=.;Initial Catalog=Northwind;Integrated Security=True"/>
      </connectionStrings>

    Puedes guiarte de este enlace Archivos de Configuración - Una introducción (1/3)

    Puedes implementar de esta manera tus métodos llamando a la key que contiene la cadena de conexión

    Using cn = New SqlConnection(ConfigurationManager.ConnectionStrings("default").ToString())
                cn.Open()
                'Resto de código  
            End Using

    Recomendación: Al encerrar la declaración del objeto Connection entre un bloque Using ... End Using, nos estaremos asegurando de cerrar la conexión y de destruir los recursos utilizados por el objeto, al finalizar dicho bloque (cuando se ejecute End Using). Con ésto no tenemos que estar pendientes de llamar al método Close (para cerrar la conexión), ni tampoco al método Dispose (para destruir el objeto), por tanto, no es necesario disponer de un procedimiento externo para tales menesteres.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    • Propuesto como respuesta Pablo Rubio viernes, 5 de enero de 2018 20:02
    • Marcado como respuesta Enrique M. Montejo lunes, 8 de enero de 2018 7:47
    viernes, 5 de enero de 2018 18:23
  • Gracias, Pedro dejame realizar esos cambios y testear con esto que me mencionas

    asdf

    viernes, 5 de enero de 2018 18:35
  • el dia de hoy no me dio error :D lo estoy probando.

    Saludos


    asdf

    martes, 9 de enero de 2018 21:49
  • Hola @Abel

    ¿Implementaste los cambios?

    Saludos!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    martes, 9 de enero de 2018 22:25
  • si, lo estoy probando hoy no me fallo como el sp tarda alrededor de 2hr la ejecucion despues de la 1hr me mostraba el error y no era de siempre, si en estos dias no falla ya publicare los cambios para todos, te notifico cualquier cosa.

    Saludos y gracias


    asdf

    martes, 9 de enero de 2018 22:29
  • Hola @Abel

    sp tarda alrededor de 2hr la ejecución

    ¿A que se debe todo ese tiempo?, quizás se puede reducir ese tiempo, ¿Qué hace el SP?, ¿obtienes datos de un Excel y lo ingresas a tu tabla?, ¿podrías comentar sobre ese SP?

    Saludos!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    martes, 9 de enero de 2018 22:56
  • si, hago unos calculos de un excel ke importo a una tabla, un excel de 30 mil registros son numeros de parte, cada numero tiene los que es demanda, po, en transito, inventario, ejemplo

    item          Tipo

    123        demanda

    123           po

    123         en transito

    123        inv

    y despues los valores de cada cosa, y las columnas ke siguen son fechas, de hoy a 2 meses, segun cuando publican el excel y a diario suben el archivo de inventario y es donde entra el SP para recalcular los cortos segun el inventario del material que llego


    asdf

    miércoles, 10 de enero de 2018 14:15