Foros del Web » Programación para mayores de 30 ;) » .NET »

Tiempo de espera

Estas en el tema de Tiempo de espera en el foro de .NET en Foros del Web. Hola, yo tengo un procedimiento almacenado en sql-server que cuando lo ejecuto desde el Analizador de Consultas del mismo SQLSERVER 2000, demora aproximadamente unos 6 ...
  #1 (permalink)  
Antiguo 27/05/2004, 18:42
 
Fecha de Ingreso: enero-2004
Ubicación: iquitos
Mensajes: 164
Antigüedad: 20 años, 3 meses
Puntos: 0
Tiempo de espera

Hola, yo tengo un procedimiento almacenado en sql-server que cuando lo ejecuto desde el Analizador de Consultas del mismo SQLSERVER 2000, demora aproximadamente unos 6 minutos, y ese mismo procedimiento lo ejecuto desde una pagina "aspx" y el resultado pasarlo aun datagrid, para ejectutar esto utilizo u SQLCommand y el resultado lo paso aun DataReader, y me sale el siguiente error:

Object reference not set to an instance of an object.
Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:


[NullReferenceException: Object reference not set to an instance of an object.]
indicegestion.WebForm1.Button1_Click(Object sender, EventArgs e) +1174
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPo stBackEventHandler.RaisePostBackEvent(String eventArgument) +58
System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1277


__________________
javier
  #2 (permalink)  
Antiguo 27/05/2004, 19:46
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 1 mes
Puntos: 7
Cual es tu código?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #3 (permalink)  
Antiguo 28/05/2004, 07:23
 
Fecha de Ingreso: enero-2004
Ubicación: iquitos
Mensajes: 164
Antigüedad: 20 años, 3 meses
Puntos: 0
el codigo es lo siguiente:
cmd = New SqlClient.SqlCommand(rdlsp.SelectedItem.Value, con)
cmd.CommandType = CommandType.StoredProcedure
anomes = New SqlClient.SqlParameter("@lcPeriodo", SqlDbType.VarChar)
reproceso = New SqlClient.SqlParameter("@lbreproceso", SqlDbType.Bit)
reproceso.Value = CInt("1")
cmd.Parameters.Add(anomes)
cmd.Parameters.Add(reproceso)
dr = cmd.ExecuteReader()
dgrid2.DataSource = dr
dgrid2.DataBind()
dr.Close()
__________________
javier
  #4 (permalink)  
Antiguo 28/05/2004, 09:03
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
del mismo SQLSERVER 2000, demora aproximadamente unos 6 minutos
Es demasiado el tiempo de respuesta no crees..?? antes que nada ya indexaste tus campos para un mejor tiempo de respuesta..??

Por otro lado (como sugerencia) puedes colocar tu código de la siguiente manera para que sea mas entendible.

Cita:
Dim myConnection As New SqlConnection("tu_cadena_De_conexion")
Dim myCommand As New SqlCommand("nombre_de_SP", myConnection)

Dim parameterPeriodo As New SqlParameter("@lcPeriodo", SqlDbType.VarChar, tamaño)
parameterPeriodo .Value = "el valor"
myCommand.Parameters.Add(parameterPeriodo )

Dim parameterProceso As New SqlParameter("@lbreproceso", SqlDbType.Bit)
parameterProceso .Value = 1
myCommand.Parameters.Add(parameterProceso)

myConnection.Open()
Dim dr As SqlDataReader = myCommand.ExecuteReader()

dgrid2.DataSource = dr
dgrid2.DataBind()
dr.Close()
myConnection.Close
Por otro lado:

Cita:
Object reference not set to an instance of an object.
Source Error:
Por lo regular se refiera a que se está haciendo referencia a algun objeto pero éste no existe..., cheques tu código y verifica que los estas llamando correctamente , por cierto... te falta el value de "anomes", le estas mandando un varchar pero no le estás asignando valor...(o acaso es un parámetro de salida ?? )


Saludos y suerte
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 28/05/2004, 09:27
 
Fecha de Ingreso: enero-2004
Ubicación: iquitos
Mensajes: 164
Antigüedad: 20 años, 3 meses
Puntos: 0
el value de ano mes lo inserto desde otro procedimiento que se me olvido ponerle
por otro lado
He sabido de una variable
Timeout expired
donde lo puedo encontrar esta variable o atributo
__________________
javier
  #6 (permalink)  
Antiguo 28/05/2004, 09:38
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
He sabido de una variable
Timeout expired
donde lo puedo encontrar esta variable o atributo
Variable TimeOut expired..??

Mas bien eso te marca cuando el tiempo de respuesta es muy largo...nuevamente te pregunto si ya indexaste tus campos, porque 6 minutos de respuesta es mucho tiempo....

Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #7 (permalink)  
Antiguo 29/05/2004, 09:15
 
Fecha de Ingreso: enero-2004
Ubicación: iquitos
Mensajes: 164
Antigüedad: 20 años, 3 meses
Puntos: 0
los campos estas indexados, pero aveces me sale un mensaje de error como sigue:

Timeout expired.
The timeout period elapsed prior to completion of the operation or the server is not responding.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.]
System.Data.SqlClient.SqlCommand.ExecuteReader(Com mandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream) +723
System.Data.SqlClient.SqlCommand.ExecuteReader() +42
indicegestion.WebForm1.Button1_Click(Object sender, EventArgs e) +1213
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPo stBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1277
__________________
javier
  #8 (permalink)  
Antiguo 29/05/2004, 11:18
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco
Mensajes: 47
Antigüedad: 19 años, 11 meses
Puntos: 0
Si ya no se puede optimizar el tiempo de la consulta, tal vez podrías modificar la propiedad 'CommandTimeout' del objeto sqlCommand, con la cual puedes modificar el tiempo de espera a un intervalo que supere los 6 minutos de tu consulta, o establecerlo a 0, con lo que esperaria indefinidamente hasta que la consulta responda.
__________________
Si puedes pensarlo, puedes hacerlo.

Última edición por rcorichard; 29/05/2004 a las 11:19
  #9 (permalink)  
Antiguo 29/05/2004, 11:31
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Yo pienso que la raiz del problema esta en la base de datos, por muy complicada que sea la consulta (con numerables subconsultas...), es imposible que te tarde ese tiempo. Y si fuera así, por circunstancias como que estés trabajando con un 286, no pretenderás hacer esperar al usuario de tu app web tanto tiempo, no??
Mi consejo es que revises bien la base de datos, (procedimientos almacenados, relaciones, etc)
Venga, saludos y suerte!!
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #10 (permalink)  
Antiguo 29/05/2004, 16:48
 
Fecha de Ingreso: enero-2004
Ubicación: iquitos
Mensajes: 164
Antigüedad: 20 años, 3 meses
Puntos: 0
estoy trabajndo en una hp compaq y twengo un buen servidor que tambien es compaq, lo he puesto el CommandTimeout = 0 ahora me sale el siguiente error

Request timed out.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Web.HttpException: Request timed out.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[HttpException (0x80004005): Request timed out.]


pero ahora la pagina demoro un poco mas, creo ya ya estos creca de la solucion, una ayudada mas por fa
__________________
javier
  #11 (permalink)  
Antiguo 21/01/2008, 17:47
 
Fecha de Ingreso: febrero-2004
Mensajes: 11
Antigüedad: 20 años, 2 meses
Puntos: 0
De acuerdo Re: Tiempo de espera

El problema son los timeout... yo he encontrado 3 timeout que interfieren al momento de hacer consultas en bases de datos en paginas ASPX

1. timeout de la pagina
2. timeout de la conexion
3. timeout del adaptador

1: El timeout de la pagina se soluciona con la siguiente linea:

Server.ScriptTimeout = 3600; // 3600 = 1 hora

Este timeout solo afecta el procedimiento donde se encuentre, osea que usenlo sin problemas

2: el timeout de la conexion se maneja en el "connectionString" y debe incluir el valor "Connect Timeout=3600;".

3: el timeout del adaptador se solucion asi:

SqlDataAdapter myAdapter = new SqlDataAdapter();
myAdapter.SelectCommand.CommandTimeout = 3600;

--------

con esto deberias poder hacer consulta hasta de 1 hora

ahora yo necesito una ayudita adicional:

parece que al utilizar ASP.NET AJAX existe un timeout adicional, porque luego de 1 minuto me lanza un timeout

¿alguien sabe como controlar el tiempo de respuesta cuando se utiliza ajax?

muchas gracias
  #12 (permalink)  
Antiguo 21/01/2008, 17:57
 
Fecha de Ingreso: febrero-2004
Mensajes: 11
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Tiempo de espera

se que deberia optimizarce la BD, pero eso toma mucho mas tiempo y se necesitan soluciones rapidas...

ademas asumo (es mi caso) una consulta de 2 minutos solo esta destinado a poquisimos usuarios en una pagina que tengan los permisos especiales para generar reportes, por ejemplo, de deudores, estados financieron de miles de clientes.

muchas gracias a los que puedan aportar que otros timeout interfieren en una pagina ASPX

saludos
  #13 (permalink)  
Antiguo 21/01/2008, 20:28
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: Tiempo de espera

27/05/04, 19:42:45

Wow, siguen vivos los post jeje

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:56.