Solved

][ODBC SQL Server Driver]Timeout expired

Posted on 2000-04-02
9
714 Views
Last Modified: 2009-04-20
I have a 17GB database in the SQL Server.
I have a stored procedure

After I put all the parameters and tried to run the output page.
I got the following error:
Microsoft OLE DB Provider for ODBC Drivers error '80040e31'

[Microsoft][ODBC SQL Server Driver]Timeout expired

/reference/list.asp, line 42

line 42 is the "cmdcp.Execute"

I am using SQL Server 7
the version of the SQL service pack is 3.700..
ODBC Connection was ok after verified.
the store procedure was ok when I run it from the SQL Server and it returns the result.

But when I run it from the web. It gave me the timeout expired.

I am thinking about the client side has the timeout problem. I monitor the SQL Server when I run that page, after I got the timeout message, the SQL Server was still executing the query.

Is that a possible way to set a timeout variable? If so, Where ?
Will it be in global.asa??
Please Help!!
0
Comment
Question by:shellyahoo71
  • 5
  • 4
9 Comments
 
LVL 1

Expert Comment

by:ATM
Comment Utility
You can put 2 timeout values.
1. For executed asp script:
Server.ScriptTimeOut=XX   (sec.)
2. For executed stored procedure
Set commandObj=Server.CreateObjet("ADODB.Command")
commandObj.CommandTimeout=XX (sec.)
Generally script's timeout +3-4 sec than command's.
Also its possible to set this values statically for all scripts within server, via
REGISTRY settings or ODBC settings (if You use this one).
Hope this help.
0
 

Author Comment

by:shellyahoo71
Comment Utility
I still got the same error, any idea?
Server.ScriptTimeout = 1600
connData.CommandTimeout= 1000
Set objAnswer = Server.CreateObject ("ADODB.Recordset")
0
 
LVL 1

Expert Comment

by:ATM
Comment Utility
What the execution time within SQL Query Analyzer? How much data you try to select and publish... I hope not 17 Megs? :)
0
 

Author Comment

by:shellyahoo71
Comment Utility
Adjusted points from 50 to 60
0
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 

Author Comment

by:shellyahoo71
Comment Utility
ATM
The stored procedure will search for 2 tables and get the data
There are around 50 fields come out as a result

and the result should not exceed 100 records

I only need several fields at the moment.

The whole file in 17 GB
I am not sure how big of these 2 tables.


0
 
LVL 1

Accepted Solution

by:
ATM earned 60 total points
Comment Utility
I not understood Your rejection cause, U ask how can You set timeout values, I answer and You reject it ... :(  ... I'm ofended ... ;)
Again please check how musch time Your code must be executed in the SQL server itself, with equal query conditions.
And if possible send ASP code exactly.
0
 

Author Comment

by:shellyahoo71
Comment Utility
Sorry ATM
don't be offended...   :~(
I really need to solve this problem.
It took about around 60-90 seconds to run the query.
But like I said
I have set

Server.ScriptTimeout = 1600
connData.CommandTimeout= 1000
still got the timeout expired..

Help, help... Help.. :~(
0
 

Author Comment

by:shellyahoo71
Comment Utility
ATM
Another quick question,
do you think the index of the reference field will help?
0
 
LVL 1

Expert Comment

by:ATM
Comment Utility
Of course make index for WHERE and ORDER BY fields.
How do You open recordset?
You can create stored procedure which returns recordset. And open it as Recordset:

Set commandObj=Server.CreateObject("ADODB.Command")
commandObj.ActiveConnection=yourConn
commandObj.CommandTimeout=60
commandObj.CommandType=4
commandObj.CommandText="yourSPName"
commandObj.Parameters.Append commandObj.CreateParameter("param1", adInteger,adParamInput,10,some_param)
Set rsObj=commandObj.Execute()

or

Set rsObj=Server.CreateObject("ADODB.Recordset")
rsObj.Cursortype adForwardOnly
rsObj.Open commandObj
....

so to open recordset, commandtimeout will be used.

0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
I was asked about the differences between classic ASP and ASP.NET, so let me put them down here, for reference: Let's make the introductions... Classic ASP was launched by Microsoft in 1998 and dynamically generate web pages upon user interact…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now