Timeout on populating a datagrid

  • Thread starter Thread starter Paul
  • Start date Start date
P

Paul

I sometimes get a timeout error when populating my datagrid,

the code is
WizardConnection.Open()

UpdateCommand.CommandText = "EXECUTE sp_assign_user '" &
PhysOffice.SelectedValue & "', '" & Context.User.Identity.Name & "'"

UpdateCommand.ExecuteNonQuery()

WizardConnection.Close()


Any suggestions?
Thanks
Paul

The error is :


Server Error in '/EmpLinkage' Application.


Timeout expired
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.OleDb.OleDbException: Timeout expired

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:

[OleDbException (0x80040e31): Timeout expired]
System.Data.OleDb.OleDbDataReader.ProcessResults(Int32 hr)
System.Data.OleDb.OleDbDataReader.NextResult()
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior
behavior, String method)
System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)

System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandB
ehavior behavior)
System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32
startRecord, Int32 maxRecords, String srcTable, IDbCommand command,
CommandBehavior behavior)
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord,
Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior
behavior)
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
EmpLinkage.WebForm1.datagrid() in
\\sta2wd08\wwwroot$\EmpLinkage\WebForm1.aspx.vb:183
EmpLinkage.WebForm1.GOButton_Click(Object sender, EventArgs e) in
\\sta2wd08\wwwroot$\EmpLinkage\WebForm1.aspx.vb:261
System.Web.UI.WebControls.Button.OnClick(EventArgs e)

System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePo
stBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler
sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()
 
Hi Paul:

It doens't look like the problem is DataGrid related, but in the
stored procedure you use to update a record in the database.

I'd review the stored procedure SQL in a query tool and see how long
the query is taking. Perhaps the stored procedure is trying to update
a record in a large table and does not have an index available to find
the record quickly.

HTH,
 
The sproc is reading not updating any database, depending upon the selection
criteria the sproc can take upto 30 seconds to complete, but asp.net doesn't
seem to want to wait that long.

Thanks


Scott Allen said:
Hi Paul:

It doens't look like the problem is DataGrid related, but in the
stored procedure you use to update a record in the database.

I'd review the stored procedure SQL in a query tool and see how long
the query is taking. Perhaps the stored procedure is trying to update
a record in a large table and does not have an index available to find
the record quickly.

HTH,

--
Scott
http://www.OdeToCode.com

I sometimes get a timeout error when populating my datagrid,

the code is
WizardConnection.Open()

UpdateCommand.CommandText = "EXECUTE sp_assign_user '" &
PhysOffice.SelectedValue & "', '" & Context.User.Identity.Name & "'"

UpdateCommand.ExecuteNonQuery()

WizardConnection.Close()


Any suggestions?
Thanks
Paul

The error is :


Server Error in '/EmpLinkage' Application.


Timeout expired
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.OleDb.OleDbException: Timeout expired

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:

[OleDbException (0x80040e31): Timeout expired]
System.Data.OleDb.OleDbDataReader.ProcessResults(Int32 hr)
System.Data.OleDb.OleDbDataReader.NextResult()
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior
behavior, String method)
System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)

System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(Command
B
ehavior behavior)
System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32
startRecord, Int32 maxRecords, String srcTable, IDbCommand command,
CommandBehavior behavior)
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord,
Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior
behavior)
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
EmpLinkage.WebForm1.datagrid() in
\\sta2wd08\wwwroot$\EmpLinkage\WebForm1.aspx.vb:183
EmpLinkage.WebForm1.GOButton_Click(Object sender, EventArgs e) in
\\sta2wd08\wwwroot$\EmpLinkage\WebForm1.aspx.vb:261
System.Web.UI.WebControls.Button.OnClick(EventArgs e)

System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaiseP
o
stBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler
sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()
 
You could set a longer timeout but that's already quite long. I would check
first if it makes sense it take so much time. How many records are returned
?


Paul said:
The sproc is reading not updating any database, depending upon the selection
criteria the sproc can take upto 30 seconds to complete, but asp.net doesn't
seem to want to wait that long.

Thanks


Scott Allen said:
Hi Paul:

It doens't look like the problem is DataGrid related, but in the
stored procedure you use to update a record in the database.

I'd review the stored procedure SQL in a query tool and see how long
the query is taking. Perhaps the stored procedure is trying to update
a record in a large table and does not have an index available to find
the record quickly.

HTH,
current
web
request. Information regarding the origin and location of the exception can
be identified using the exception stack trace below.

Stack Trace:

[OleDbException (0x80040e31): Timeout expired]
System.Data.OleDb.OleDbDataReader.ProcessResults(Int32 hr)
System.Data.OleDb.OleDbDataReader.NextResult()
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior
behavior, String method)
System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)

System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(Command
B
ehavior behavior)
System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32
startRecord, Int32 maxRecords, String srcTable, IDbCommand command,
CommandBehavior behavior)
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord,
Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior
behavior)
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
EmpLinkage.WebForm1.datagrid() in
\\sta2wd08\wwwroot$\EmpLinkage\WebForm1.aspx.vb:183
EmpLinkage.WebForm1.GOButton_Click(Object sender, EventArgs e) in
\\sta2wd08\wwwroot$\EmpLinkage\WebForm1.aspx.vb:261
System.Web.UI.WebControls.Button.OnClick(EventArgs e)

System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaiseP
o
stBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler
sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()
 
Hi Paul:

Sorry for the confusion, the source code you posted shows
ExecuteNonQuery, but the stack trace shows the exception occurs on a
Fill method.

The CommandTimeout property of an OleDbCommand object defaults to 30
seconds. Seems possible it could occasionally be going over.


One approach would be to look at ways to speed up the query, and
check for locking and blocks in the database. Another approach would
be to bump the CommandTimeout property up to a number where the query
can always safely complete.

--s

The sproc is reading not updating any database, depending upon the selection
criteria the sproc can take upto 30 seconds to complete, but asp.net doesn't
seem to want to wait that long.

Thanks


Scott Allen said:
Hi Paul:

It doens't look like the problem is DataGrid related, but in the
stored procedure you use to update a record in the database.

I'd review the stored procedure SQL in a query tool and see how long
the query is taking. Perhaps the stored procedure is trying to update
a record in a large table and does not have an index available to find
the record quickly.

HTH,

--
Scott
http://www.OdeToCode.com

I sometimes get a timeout error when populating my datagrid,

the code is
WizardConnection.Open()

UpdateCommand.CommandText = "EXECUTE sp_assign_user '" &
PhysOffice.SelectedValue & "', '" & Context.User.Identity.Name & "'"

UpdateCommand.ExecuteNonQuery()

WizardConnection.Close()


Any suggestions?
Thanks
Paul

The error is :


Server Error in '/EmpLinkage' Application.


Timeout expired
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.OleDb.OleDbException: Timeout expired

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:

[OleDbException (0x80040e31): Timeout expired]
System.Data.OleDb.OleDbDataReader.ProcessResults(Int32 hr)
System.Data.OleDb.OleDbDataReader.NextResult()
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior
behavior, String method)
System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)

System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(Command
B
ehavior behavior)
System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32
startRecord, Int32 maxRecords, String srcTable, IDbCommand command,
CommandBehavior behavior)
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord,
Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior
behavior)
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
EmpLinkage.WebForm1.datagrid() in
\\sta2wd08\wwwroot$\EmpLinkage\WebForm1.aspx.vb:183
EmpLinkage.WebForm1.GOButton_Click(Object sender, EventArgs e) in
\\sta2wd08\wwwroot$\EmpLinkage\WebForm1.aspx.vb:261
System.Web.UI.WebControls.Button.OnClick(EventArgs e)

System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaiseP
o
stBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler
sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()
 
Back
Top