Foro de elhacker.net

Foros Generales => Foro Libre => Mensaje iniciado por: Shell Root en 7 Julio 2014, 14:47 pm



Título: Problema al conectar MSSQL
Publicado por: Shell Root en 7 Julio 2014, 14:47 pm
Tengo un servidor (Windows Server Standard FE) y varios ps conectados en lan, el servidor tengo MSSQL (SQL Server 2008) y estoy desarrollando una aplicacion en C# la cual necesita conexion a la base de datos.

Citar
ERROR: Valor de tiempo de espera caducado. El periodo de tiempo de espera se agotó al intentar consumir la confirmación del protocolo de enlace previo al inicio de sesión. El motivo podría ser que se produjo un error en el protocolo de enlace o que el servidor no pudo responder a tiempo. El tiempo invertido al intentar conectarse a este servidor fue: [Previo al inicio de sesión] inicializacion=39077; protocolo de enlace=13.

En el servidor tengo permitido la conexion al equipo, además, del motor de base de datos, que podría estar pasando?

Me conecto desde Excel y entra normalmente, pero no puedo coger el mismo string de conexión porque contiene palabras reservadas.


Título: Re: Problema al conectar MSSQL
Publicado por: Ari Slash en 7 Julio 2014, 15:06 pm
Hola,
bueno, hubo un tiempo que tuve el mismo problema, y tan solo aumente el timeout a un valor grande, en el string de conexión, si es que usas "Data.SqlClient.SqlConnection":

Data Source=127.0.0.1;Initial Catalog=miBD;User ID=admin;Password=123;Connection Timeout=3000000;

Saludos


Título: Re: Problema al conectar MSSQL
Publicado por: Shell Root en 7 Julio 2014, 15:18 pm
@Ari Slash, eso me funciono pero tarda demasiado en ejecutarse una query simple (insert), como podría corregirse? Hacerlo desde el motor de base de datos?


Título: Re: Problema al conectar MSSQL
Publicado por: Ari Slash en 7 Julio 2014, 15:36 pm
Tienes instalado el "SQL Server Management Studio" ?
Intenta probando las consultas en ese cliente, para ir descartando.
Si funciona rapido en ese cliente, puede ser la clase de conexión que estes utilizando, y podrias postearla. Si funciona igual de lento, en el mismo cliente, sobre tu nueva conexión, click derecho > monitor de actividad. Y se vera el uso de memoria y/o procesador, para saber si es la cantidad de registros de la consulta la que causa la lentitud, o el trabajo en si que requiera esta.


Título: Re: Problema al conectar MSSQL
Publicado por: Shell Root en 7 Julio 2014, 15:39 pm
Es la misma que uso siempre y sólo esta vez me ha presentado este inconveniente,

Código
  1. this.Cnn = new SqlConnection("Data Source=xxx; Initial Catalog=DBAcceso; User Id=sa; Password=sa; Connection Timeout=0;");
  2. this.Cnn.Open();
  3.  
  4. this.Cmd = new SqlCommand(Sql, this.Cnn);
  5. this.Cmd.ExecuteNonQuery();
  6.  
  7. this.Cnn.Close();


Título: Re: Problema al conectar MSSQL
Publicado por: Ari Slash en 7 Julio 2014, 15:56 pm
Bueno tu conexión como dices, no tiene inconvenientes. La acabo de probar tal cual.
Intenta lo del SQL server Management Studio,
y ademas ejecutar el procedimiento del sistema "sys.sp_updatestats", que actualizara  indexara tu Base de datos, si es que el problema va por ahi.

Espero comentarios.

Saludos.


Título: Re: Problema al conectar MSSQL
Publicado por: Shell Root en 7 Julio 2014, 16:35 pm
No lo he solucionado, cada query tarda unos 10seg aprox en ejecutarse  :-[


Título: Re: Problema al conectar MSSQL
Publicado por: Ari Slash en 7 Julio 2014, 16:38 pm
Algun Disparador tendra aquella tabla en la que realizas el insert?


Título: Re: Problema al conectar MSSQL
Publicado por: Shell Root en 7 Julio 2014, 16:46 pm
No, la base de datos sólo tiene 2 tablas. A la tabla que consulto sólo tiene 1 registro.


Título: Re: Problema al conectar MSSQL
Publicado por: Ari Slash en 7 Julio 2014, 16:51 pm
Podrias postear la estructura de la tabla a la cual haces el insert. Y el insert mismo.


Título: Re: Problema al conectar MSSQL
Publicado por: Shell Root en 7 Julio 2014, 17:43 pm
Es algo simple nada del otro mundo,

Código
  1. USE [DBAcceso]
  2. GO
  3. /****** Object:  Table [dbo].[Acceso]    Script Date: 07/07/2014 10:42:42 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE TABLE [dbo].[Acceso](
  9. [id] [INT] IDENTITY(1,1) NOT NULL,
  10. [idEmpleado] [INT] NOT NULL,
  11. [fechaIngreso] [datetime] NULL,
  12. [fechaSalida] [datetime] NULL,
  13. [estado] [tinyint] NOT NULL,
  14. CONSTRAINT [PK_Actividad] PRIMARY KEY CLUSTERED
  15. (
  16. [id] ASC
  17. )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
  18. ) ON [PRIMARY]
  19. GO
  20. /****** Object:  ForeignKey [FK_Acceso_Empleado]    Script Date: 07/07/2014 10:42:42 ******/
  21. ALTER TABLE [dbo].[Acceso]  WITH CHECK ADD  CONSTRAINT [FK_Acceso_Empleado] FOREIGN KEY([idEmpleado])
  22. REFERENCES [dbo].[Empleado] ([id])
  23. GO
  24. ALTER TABLE [dbo].[Acceso] CHECK CONSTRAINT [FK_Acceso_Empleado]
  25. GO
  26.  


Título: Re: Problema al conectar MSSQL
Publicado por: MinusFour en 7 Julio 2014, 18:03 pm
¿Podría ser cuestión de tu red? ¿Algún firewall o antivirus? ¿Y si snifeas el trafico SQL solo para descartar cualquier problema de tu conexión?


Título: Re: Problema al conectar MSSQL
Publicado por: Ari Slash en 7 Julio 2014, 18:11 pm
Código
  1. USE [DBAcceso]
  2. GO
  3. /****** Object:  Table [dbo].[Acceso]    Script Date: 07/07/2014 10:42:42 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE TABLE [dbo].[Acceso](
  9. [id] [INT] IDENTITY(1,1) NOT NULL,
  10. [idEmpleado] [INT] NOT NULL,
  11. [fechaIngreso] [datetime] NULL,
  12. [fechaSalida] [datetime] NULL,
  13. [estado] [tinyint] NOT NULL,
  14. CONSTRAINT [PK_Actividad] PRIMARY KEY CLUSTERED
  15. (
  16. [id] ASC
  17. )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
  18. ) ON [PRIMARY]
  19. GO
  20. /****** Object:  ForeignKey [FK_Acceso_Empleado]    Script Date: 07/07/2014 10:42:42 ******/
  21. ALTER TABLE [dbo].[Acceso]  WITH CHECK ADD  CONSTRAINT [FK_Acceso_Empleado] FOREIGN KEY([idEmpleado])
  22. REFERENCES [dbo].[Empleado] ([id])
  23. GO
  24. ALTER TABLE [dbo].[Acceso] CHECK CONSTRAINT [FK_Acceso_Empleado]
  25. GO
  26.  

prueba quitando el "clustered" a "non-clustered".

CONSTRAINT [PK_Actividad] PRIMARY KEY CLUSTERED

y si quieres mantener el Clustered. Crea un index:

Código
  1. CREATE INDEX DBAcceso.index_Acceso
  2. ON DBAcceso.Acceso (id)



Título: Re: Problema al conectar MSSQL
Publicado por: Shell Root en 8 Julio 2014, 14:42 pm
Ni firewall, ni NONCLUSTERED!  :-[


Título: Re: Problema al conectar MSSQL
Publicado por: Ari Slash en 8 Julio 2014, 14:45 pm
U.u

Y el index?


Título: Re: Problema al conectar MSSQL
Publicado por: Shell Root en 8 Julio 2014, 15:04 pm
Cree por medio de código simple y nada, creo que es problema de la comunicación entre la aplicación y el motor de base de datos  :-[

Código
  1. DROP   DATABASE DBAcceso
  2. CREATE DATABASE DBAcceso
  3.  
  4. USE DBAcceso
  5.  
  6. CREATE TABLE [dbo].[Empleado](
  7. [id] [INT] IDENTITY(1,1) NOT NULL PRIMARY KEY,
  8. [cedula] [VARCHAR](20) NOT NULL,
  9. [nombre] [VARCHAR](50) NOT NULL,
  10. [apellido] [VARCHAR](50) NOT NULL,
  11. [salario] [NUMERIC](18, 0) NULL,
  12. [estado] [tinyint] NOT NULL
  13. )
  14.  
  15. CREATE TABLE [dbo].[Acceso](
  16. [id] [INT] IDENTITY(1,1) NOT NULL  PRIMARY KEY,
  17. [idEmpleado] [INT] NOT NULL,
  18. [fechaIngreso] [datetime] NULL,
  19. [fechaSalida] [datetime] NULL,
  20. [estado] [tinyint] NOT NULL
  21. )


Título: Re: Problema al conectar MSSQL
Publicado por: Ari Slash en 8 Julio 2014, 15:28 pm
Descargate el Sql server Management Studio, para descartar problemas del cliente o del servidor.

http://www.microsoft.com/es-cl/download/details.aspx?id=7593

Son 198.6 mb.


Título: Re: Problema al conectar MSSQL
Publicado por: MinusFour en 8 Julio 2014, 15:44 pm
Cree por medio de código simple y nada, creo que es problema de la comunicación entre la aplicación y el motor de base de datos  :-[

Código
  1. DROP   DATABASE DBAcceso
  2. CREATE DATABASE DBAcceso
  3.  
  4. USE DBAcceso
  5.  
  6. CREATE TABLE [dbo].[Empleado](
  7. [id] [INT] IDENTITY(1,1) NOT NULL PRIMARY KEY,
  8. [cedula] [VARCHAR](20) NOT NULL,
  9. [nombre] [VARCHAR](50) NOT NULL,
  10. [apellido] [VARCHAR](50) NOT NULL,
  11. [salario] [NUMERIC](18, 0) NULL,
  12. [estado] [tinyint] NOT NULL
  13. )
  14.  
  15. CREATE TABLE [dbo].[Acceso](
  16. [id] [INT] IDENTITY(1,1) NOT NULL  PRIMARY KEY,
  17. [idEmpleado] [INT] NOT NULL,
  18. [fechaIngreso] [datetime] NULL,
  19. [fechaSalida] [datetime] NULL,
  20. [estado] [tinyint] NOT NULL
  21. )

Yo estaba pensando justo esto porque dices que te funciona bien en el excel. ¿Cual es la query que estás corriendo en tu programa?


Título: Re: Problema al conectar MSSQL
Publicado por: Shell Root en 8 Julio 2014, 15:50 pm
@Ari Slash ese ya lo tengo, como dije al inicio... He hecho esto por años, pero esta es la única vez que me presenta este problema.

@MinusFour, en excel es una SELECT a una tabla -sólo para ver la conexion-, y en mi aplicación es un pinche select básico..
Código
  1. string Sql = "SELECT id, nombre, apellido ";
  2. Sql += "FROM Empleado ";
  3. Sql += "WHERE estado = 1 AND cedula = '" + cedula + "'";


Título: Re: Problema al conectar MSSQL
Publicado por: MinusFour en 8 Julio 2014, 16:07 pm
¿El servidor esta en el equipo o está en otro punto de la red? ¿Estás usando alguna DNS?


Título: Re: Problema al conectar MSSQL
Publicado por: Shell Root en 8 Julio 2014, 16:14 pm
Es un servidor, mi pc es una "terminal", por asi decirlo.

DNS no!


Título: Re: Problema al conectar MSSQL
Publicado por: MinusFour en 8 Julio 2014, 16:24 pm
Revisa sys.dm_exec_query_stats para ver cuanto tiempo tarda en procesar la query, busca por el CPU time.


Título: Re: Problema al conectar MSSQL
Publicado por: Ari Slash en 8 Julio 2014, 16:42 pm
Reinstala Windows mejor xD

EDIT:
Pensandolo bien, intenta hacer funcionar tu codigo, pero sin estar conectado a red alguna, ni wifi ni cable.
Te estas auto-referenciando, por 127.0.0.1? localhost? o tu ip lan o wan? nombre de equipo?
Caracteristicas de tu Servidor?

Esos pc's conectados en lan, son active directory?


Título: Re: Problema al conectar MSSQL
Publicado por: Shell Root en 8 Julio 2014, 17:49 pm
Lo de reinstalar, ni loco jajajjaaja
Por la autoreferencia no creo porque no tengo el MSSQL interno, por otro lado si actualizo la información se ve reflejada en el servidor.


Título: Re: Problema al conectar MSSQL
Publicado por: MinusFour en 8 Julio 2014, 18:16 pm
Lo de reinstalar, ni loco jajajjaaja
Por la autoreferencia no creo porque no tengo el MSSQL interno, por otro lado si actualizo la información se ve reflejada en el servidor.

¿Y si ejecutas el programa de forma local en el servidor? Para descartar cualquier problema de red.


Título: Re: Problema al conectar MSSQL
Publicado por: Shell Root en 9 Julio 2014, 14:49 pm
@MinusFour, tienes razón! cuando lo ejecuto directamente desde el servidor está responde en menos de 1 seg!

Ahora supondré que es problema de red? Todo el tiempo estuve trabajando por Wifi! Pero presenta el mismo problema si lo hago por cable!


Título: Re: Problema al conectar MSSQL
Publicado por: Ari Slash en 9 Julio 2014, 15:43 pm
Por fin luz al final del camino xD.
A lo mejor tu red tiene control de velocidad por Qos?


Título: Re: Problema al conectar MSSQL
Publicado por: Shell Root en 9 Julio 2014, 15:52 pm
@Ari Slash NO!



Fuck! Es el Firewall del servidor! Tanto tiempo perdido para algo tan básico! Disculpad por vuestro tiempo, no habia pensando en ello. Por otro lado, como podría hacer para activar el servidor y que mi aplicación funcione correctamente? Sólo abrí el puerto y quedo OK!

Gracias @MinusFour y @Ari Slash  :-*


Título: Re: Problema al conectar MSSQL
Publicado por: MinusFour en 9 Julio 2014, 16:31 pm
Que raro, ¿Cómo es que se ejecutaba las consultas si el server estaba detrás de un firewall? :huh:

En fin! Que bueno que tengas ese problema resuelto.


Título: Re: Problema al conectar MSSQL
Publicado por: Ari Slash en 9 Julio 2014, 18:29 pm
wou que bien, y como dice MinusFour, es raro, no cuadra, bug?
Y lo ultimo, si puedes especificar version del windows server(ultimas actualizaciones cargadas), para averiguar sobre eso del firewall. ;D

Saludos