none
Timeout expired RRS feed

  • Pregunta

  • Buenos días, en primer lugar gracias de antemano a todo aquel que me pueda ayudar.

    El planteamiento de mi problema es el siguente: tengo un PC servidor con Microsoft SQL EXPRESS 2008 con una base de datos "normal".

    En la red hay otros 10 ordenadores conectados, que tiran del servidor. He abierto del servidor puertos, configurada superficie, etc etc... El servidor tiene instalado Windows 7 Professional, el resto de la red de PC's Windows XP Profesional.

    Cuando intento conectar con la base de datos del servidor con el Microsoft SQL Server Management Studio 2008 en cualquier PC de la red, me aparece el siguente mensaje a la primera:

    Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding (Microsoft SQL Server).

    Pero a la segunda me conecta, pero es como si no lo hiciera bien del todo, porque el símbolo que representa a la base de datos en el "Explorador de objetos" del Management studio no tiene el icono del "play" verde que suele aparecer ahí.

    No entiendo por qué a la primera no conecta y a la segunda si. Esto es importante porque utilizo la base de datos para una aplicación que he desarrollado en VB. Net.

    Un saludo.

    miércoles, 19 de mayo de 2010 9:00

Respuestas

  • ¿Has probado a aumentar el timeout de la conexión? En cualquier caso parece un problema de red (lenta) o de que el servidor esté muy saturado (poco probable con 10 posibles clientes), porque si termina conectando no es un problema de conectividad
    • Marcado como respuesta AlvaroPucela viernes, 21 de mayo de 2010 7:50
    miércoles, 19 de mayo de 2010 9:14
  • ¿Has probado a aumentar el timeout de la conexión? En cualquier caso parece un problema de red (lenta) o de que el servidor esté muy saturado (poco probable con 10 posibles clientes), porque si termina conectando no es un problema de conectividad


    Parece que esta puede ser la solución, no se por qué pero si modifico el tiempo en el sql management conecta, pero en la cadena de conexión del programa como lo pongo?

    mi cadena de conexión es esta:

    Persist Security Info = False; User ID = alvaro; Password = alvaro69; Initial Catalog = BDUcoartis; Data Source = SERVIDOR\SQLEXPRESS; Packet Size = 4096; Workstation ID = PUESTO-07

     

    sería añadir Timeout Expired = 30 o algo asi? Un saludo y gracias!

    En http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28VS.71%29.aspx tienes un ejemplo de cómo establecer esa propiedad, pero básicamente consiste en el parámetro "Connect timeout=xx", donde "xx" son los segundos.

    En http://www.connectionstrings.com/Articles/Show/all-sql-server-connection-string-keywords tienes una lista de todos los parámetros que puedes establecer en la cadena de conexión a SQL Server

    • Propuesto como respuesta Carlos Sacristan lunes, 24 de mayo de 2010 9:05
    • Marcado como respuesta AlvaroPucela miércoles, 26 de mayo de 2010 9:32
    lunes, 24 de mayo de 2010 9:05
  • Hola.

    ¿Está tu base de datos en modo "Autoclose"? En esas circunstancias, la primera conexión debe realizar el recovery de la base de datos y es posible que en los 15 segundos de timeout no le dé tiempo a completar el proceso (sobre todo si tienes un log de cierto tamaño). Sin embargo, el segundo intento ya sí conecta porque el proceso se ha ido completando mientras tanto.

    Para solventarlo, cambia la propiedad "Autoclose" y ponla a "false" (botón derecho sobre la base de datos + propiedades, seleccionas la pestaña "Options" y ahí buscas esta propiedad).

    Esta característica tiene una escasa utilidad y no es muy recomendable, ya que si bien se pueden liberar recursos cuando ningún usuario está conectado a la base de datos, es algo insignificante comparado con el tiempo de espera que implica la primera conexión de cada usuario, llegando incluso a darse problemas como el que a ti te sucede.

     


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    miércoles, 19 de mayo de 2010 21:54
    Moderador
  • ¿Has probado a aumentar el timeout de la conexión? En cualquier caso parece un problema de red (lenta) o de que el servidor esté muy saturado (poco probable con 10 posibles clientes), porque si termina conectando no es un problema de conectividad


    Parece que esta puede ser la solución, no se por qué pero si modifico el tiempo en el sql management conecta, pero en la cadena de conexión del programa como lo pongo?

    mi cadena de conexión es esta:

    Persist Security Info = False; User ID = alvaro; Password = alvaro69; Initial Catalog = BDUcoartis; Data Source = SERVIDOR\SQLEXPRESS; Packet Size = 4096; Workstation ID = PUESTO-07

     

    sería añadir Timeout Expired = 30 o algo asi? Un saludo y gracias!

    • Marcado como respuesta AlvaroPucela miércoles, 26 de mayo de 2010 9:32
    lunes, 24 de mayo de 2010 8:29

Todas las respuestas

  • ¿Has probado a aumentar el timeout de la conexión? En cualquier caso parece un problema de red (lenta) o de que el servidor esté muy saturado (poco probable con 10 posibles clientes), porque si termina conectando no es un problema de conectividad
    • Marcado como respuesta AlvaroPucela viernes, 21 de mayo de 2010 7:50
    miércoles, 19 de mayo de 2010 9:14
  • Hola.

    ¿Está tu base de datos en modo "Autoclose"? En esas circunstancias, la primera conexión debe realizar el recovery de la base de datos y es posible que en los 15 segundos de timeout no le dé tiempo a completar el proceso (sobre todo si tienes un log de cierto tamaño). Sin embargo, el segundo intento ya sí conecta porque el proceso se ha ido completando mientras tanto.

    Para solventarlo, cambia la propiedad "Autoclose" y ponla a "false" (botón derecho sobre la base de datos + propiedades, seleccionas la pestaña "Options" y ahí buscas esta propiedad).

    Esta característica tiene una escasa utilidad y no es muy recomendable, ya que si bien se pueden liberar recursos cuando ningún usuario está conectado a la base de datos, es algo insignificante comparado con el tiempo de espera que implica la primera conexión de cada usuario, llegando incluso a darse problemas como el que a ti te sucede.

     


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    miércoles, 19 de mayo de 2010 21:54
    Moderador
  • Gracias a los 2 por responderme, tengo 2 dias libres y hasta el lunes no vuelvo al trabajo. Probaré lo que me contáis y os digo qué tal, si ha funcionado o no.

    De todas formas os aportaré otros 2 datos: En mi PC, que es en el que hago las aplicaciones en VB. Net, la aplicación conecta a la primera y funciona bien desde el principio. En mi PC tengo instalado el Visual Studio 2002 que es con el editor que trabajo. No se si eso influirá en algo, supongo que no, que con tener instalado el net framework en el resto de pcs la aplicación debería de funcionar correctamente.

    De todas formas el mensaje de error el que le devuelve es el SQL Server claramente, lo pruebo y el lunes os digo ok? Muchas gracias de verdad, si me funciona me salvais la vida!

    viernes, 21 de mayo de 2010 7:56
  • Hola.

    ¿Está tu base de datos en modo "Autoclose"? En esas circunstancias, la primera conexión debe realizar el recovery de la base de datos y es posible que en los 15 segundos de timeout no le dé tiempo a completar el proceso (sobre todo si tienes un log de cierto tamaño). Sin embargo, el segundo intento ya sí conecta porque el proceso se ha ido completando mientras tanto.

    Para solventarlo, cambia la propiedad "Autoclose" y ponla a "false" (botón derecho sobre la base de datos + propiedades, seleccionas la pestaña "Options" y ahí buscas esta propiedad).

    Esta característica tiene una escasa utilidad y no es muy recomendable, ya que si bien se pueden liberar recursos cuando ningún usuario está conectado a la base de datos, es algo insignificante comparado con el tiempo de espera que implica la primera conexión de cada usuario, llegando incluso a darse problemas como el que a ti te sucede.

     


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)

    Acabo de probar esto y nada, sigue haciendo lo mismo. Siempre tarda en conectar la primera vez un montón, pero por qué desde mi ordenador conecta a la primera y los del resto de la red no?? y mi ordenador no es el servidor. Os he puesto algún dato mas en otro comentario.
    • Marcado como respuesta AlvaroPucela miércoles, 26 de mayo de 2010 9:32
    • Desmarcado como respuesta AlvaroPucela miércoles, 26 de mayo de 2010 9:32
    lunes, 24 de mayo de 2010 7:43
  • ¿Has probado a aumentar el timeout de la conexión? En cualquier caso parece un problema de red (lenta) o de que el servidor esté muy saturado (poco probable con 10 posibles clientes), porque si termina conectando no es un problema de conectividad


    Parece que esta puede ser la solución, no se por qué pero si modifico el tiempo en el sql management conecta, pero en la cadena de conexión del programa como lo pongo?

    mi cadena de conexión es esta:

    Persist Security Info = False; User ID = alvaro; Password = alvaro69; Initial Catalog = BDUcoartis; Data Source = SERVIDOR\SQLEXPRESS; Packet Size = 4096; Workstation ID = PUESTO-07

     

    sería añadir Timeout Expired = 30 o algo asi? Un saludo y gracias!

    • Marcado como respuesta AlvaroPucela miércoles, 26 de mayo de 2010 9:32
    lunes, 24 de mayo de 2010 8:29
  • ¿Has probado a aumentar el timeout de la conexión? En cualquier caso parece un problema de red (lenta) o de que el servidor esté muy saturado (poco probable con 10 posibles clientes), porque si termina conectando no es un problema de conectividad


    Parece que esta puede ser la solución, no se por qué pero si modifico el tiempo en el sql management conecta, pero en la cadena de conexión del programa como lo pongo?

    mi cadena de conexión es esta:

    Persist Security Info = False; User ID = alvaro; Password = alvaro69; Initial Catalog = BDUcoartis; Data Source = SERVIDOR\SQLEXPRESS; Packet Size = 4096; Workstation ID = PUESTO-07

     

    sería añadir Timeout Expired = 30 o algo asi? Un saludo y gracias!

    En http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28VS.71%29.aspx tienes un ejemplo de cómo establecer esa propiedad, pero básicamente consiste en el parámetro "Connect timeout=xx", donde "xx" son los segundos.

    En http://www.connectionstrings.com/Articles/Show/all-sql-server-connection-string-keywords tienes una lista de todos los parámetros que puedes establecer en la cadena de conexión a SQL Server

    • Propuesto como respuesta Carlos Sacristan lunes, 24 de mayo de 2010 9:05
    • Marcado como respuesta AlvaroPucela miércoles, 26 de mayo de 2010 9:32
    lunes, 24 de mayo de 2010 9:05
  • ¿Has probado a aumentar el timeout de la conexión? En cualquier caso parece un problema de red (lenta) o de que el servidor esté muy saturado (poco probable con 10 posibles clientes), porque si termina conectando no es un problema de conectividad


    Parece que esta puede ser la solución, no se por qué pero si modifico el tiempo en el sql management conecta, pero en la cadena de conexión del programa como lo pongo?

    mi cadena de conexión es esta:

    Persist Security Info = False; User ID = alvaro; Password = alvaro69; Initial Catalog = BDUcoartis; Data Source = SERVIDOR\SQLEXPRESS; Packet Size = 4096; Workstation ID = PUESTO-07

     

    sería añadir Timeout Expired = 30 o algo asi? Un saludo y gracias!

    En http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28VS.71%29.aspx tienes un ejemplo de cómo establecer esa propiedad, pero básicamente consiste en el parámetro "Connect timeout=xx", donde "xx" son los segundos.

    En http://www.connectionstrings.com/Articles/Show/all-sql-server-connection-string-keywords tienes una lista de todos los parámetros que puedes establecer en la cadena de conexión a SQL Server


    Gracias, esta parece que es la solución, bueno es mas bien un parche porque en 1 pc de la red me conecta a la primera y rápido, y en el resto no. De todas formas funciona, asi que gracias!
    • Marcado como respuesta AlvaroPucela miércoles, 26 de mayo de 2010 9:34
    • Desmarcado como respuesta AlvaroPucela miércoles, 26 de mayo de 2010 9:34
    miércoles, 26 de mayo de 2010 9:33