ASP NET server can not response after long job

J

jacob

Hi everyone:
I have a problem in ASP NET. Here is my situation.
I developed an ASP NET application. It concerns data statistics.
DB is oracle 10g, Web server is IIS 6.0, Server OS is Win2003, Client
OS is Winxp,
Develepment Platform is VS2003. In DB, data of a major table is huge,
( 6~9 milllions)
I have to do some statistics on that huge table, then fill the result
to htmltable.
Here comes the problem.
If the job takes less than 5~6 minutes, IE of client will show the
correct result.
If the job takes more than 6 minutes, IE of client has no response.
When I monitored
the log in Server, it showed the job had completed. So I doubt server
can not push the
data back to client after the request takes more than 5~6 minutes.
could some one give me some advices?
any suggestion will be appreciated.

Server Hardware : DELL SERVER P4 3.0G, 1G RAM, 160G HD
IIS and Oracle 10g are installed in the same machine.
Does two of them conflict in one server?
Sorry for my poor english
 
T

Tasos Vogiatzoglou

You should consider using asynchronous execution of this task in a non
aspnet worker thread.

Because right now you are using an ASPNET worker thread to perform your
logic. If you have any questions about asynchronous execution post a
question.

Regards,
Tasos
 
J

jacob

firstly thanks a lot.
And can asynchronous execution shorten the time to 5~6 minutes?
you know, the major table can be more and more huge,
even you use multithread to process the job, it will still take you
more than 5~6 minutes when data reaches such a proper count.
I admit there are some faults in database design. But it has legacy
data, I can do nothing on it.

is there some else trick? or I have not get your point clear?
please !!!
 
T

Tasos Vogiatzoglou

I don't know if asynchronous execution will shorten the time, but you
will free an aspnet worker thread that can be used to serve other
requests (having nothing to do with the db logic).

By using an asynchronous request you utilize in a more efficient way
the worker threads of your application and you can show a "Please wait"
to the user and probably a status bar or sth ...
 
J

jacob

To solve this problem, I cloned a deploy environment.
And even one request one time, no other jobs were due to process,
I waited for a long time, the problem still occured.

BTW: I did some extra test. just hard coding some delay in process user

request("thread.sleep(n)" such stuff), it still does not work.
what a weird problem
 
M

mkumaran

Hi Jacob,
Please reconsider your schema design..
If you have a primary key in a table You can create a clustered index
on it.
If you have a foriegn keys please create a database diagram to give the
realationships among them so that the query runs very fast. Optimize
your database with indexes.
and see the difference.
 
J

jacob

Hi mkumaran
3ks. I got ur point.
But it is a legacy database with legacy data.
I had an idea about redesigning the database before.
I can not guarantee the impact of redesign
maybe legacy system will crush.
so it is pity that i can not take your advice.
thanks a lot
 
M

mkumaran

Hi Jacob,
Do one thing,
Take Full back up of your database and restore it somewhere else. And
try those things I have told to you. It wil definitely help you to sort
out of this problem. If this idea not worked for you You can carry on
with your legacy old database.
Bye,
Muthu Kumaran.D
 
B

bruce barker \(sqlwork.com\)

five minutes is too long. you need to start a back ground thread to do the
work, then have the browser poll for completion. google this group on
progress bar for more info.

-- bruce (sqlwork.com)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,780
Messages
2,569,611
Members
45,280
Latest member
BGBBrock56

Latest Threads

Top