Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Tiempo de espera (http://www.forosdelweb.com/f29/tiempo-espera-205835/)

alexander21rr 27/05/2004 18:42

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


:adios:

RsOfT 27/05/2004 19:46

Cual es tu código?

alexander21rr 28/05/2004 07:23

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()

RootK 28/05/2004 09:03

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..?? :pensando:

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" :si:
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 ?? :pensando: )


Saludos y suerte :cool:

alexander21rr 28/05/2004 09:27

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

RootK 28/05/2004 09:38

Cita:

He sabido de una variable
Timeout expired
donde lo puedo encontrar esta variable o atributo :ojotes:
Variable TimeOut expired..?? :pensando:

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.... :stress:

Saludos

alexander21rr 29/05/2004 09:15

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

rcorichard 29/05/2004 11:18

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.

GeRuNdIo 29/05/2004 11:31

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!!

alexander21rr 29/05/2004 16:48

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

ar7uro 21/01/2008 17:47

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

ar7uro 21/01/2008 17:57

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

RootK 21/01/2008 20:28

Re: Tiempo de espera
 
27/05/04, 19:42:45

Wow, siguen vivos los post jeje

Salu2


La zona horaria es GMT -6. Ahora son las 21:13.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.