g*g
2 楼
We have a remote web service, a thick client will invoke this web service
to run a long report on server side and get the report back, which takes
a while, say, several minutes.
Unfortunately, the connection will be reset before the report is returned
and
a broken pipeline error would show up on server side. I guess some hardware
in between detects there's no activity after certin period and resets it.
Is there any simple way to get around this?
to run a long report on server side and get the report back, which takes
a while, say, several minutes.
Unfortunately, the connection will be reset before the report is returned
and
a broken pipeline error would show up on server side. I guess some hardware
in between detects there's no activity after certin period and resets it.
Is there any simple way to get around this?
c*t
4 楼
I think that is basically no way. At best you could try and see if
different client (telnet, java, browser) would make a difference.
One possible approach is to return dummy result (or the job id) first.
Then on the subsequent query (with job id) check if the job has been
done or not.
hardware
【在 g*****g 的大作中提到】
: We have a remote web service, a thick client will invoke this web service
: to run a long report on server side and get the report back, which takes
: a while, say, several minutes.
: Unfortunately, the connection will be reset before the report is returned
: and
: a broken pipeline error would show up on server side. I guess some hardware
: in between detects there's no activity after certin period and resets it.
: Is there any simple way to get around this?
different client (telnet, java, browser) would make a difference.
One possible approach is to return dummy result (or the job id) first.
Then on the subsequent query (with job id) check if the job has been
done or not.
hardware
【在 g*****g 的大作中提到】
: We have a remote web service, a thick client will invoke this web service
: to run a long report on server side and get the report back, which takes
: a while, say, several minutes.
: Unfortunately, the connection will be reset before the report is returned
: and
: a broken pipeline error would show up on server side. I guess some hardware
: in between detects there's no activity after certin period and resets it.
: Is there any simple way to get around this?
A*o
6 楼
when using http, one normal create a timer on the html
and refresh the page once a while until the report is generated.
i guess similiar approach can be done on your case.
hardware
【在 g*****g 的大作中提到】
: We have a remote web service, a thick client will invoke this web service
: to run a long report on server side and get the report back, which takes
: a while, say, several minutes.
: Unfortunately, the connection will be reset before the report is returned
: and
: a broken pipeline error would show up on server side. I guess some hardware
: in between detects there's no activity after certin period and resets it.
: Is there any simple way to get around this?
and refresh the page once a while until the report is generated.
i guess similiar approach can be done on your case.
hardware
【在 g*****g 的大作中提到】
: We have a remote web service, a thick client will invoke this web service
: to run a long report on server side and get the report back, which takes
: a while, say, several minutes.
: Unfortunately, the connection will be reset before the report is returned
: and
: a broken pipeline error would show up on server side. I guess some hardware
: in between detects there's no activity after certin period and resets it.
: Is there any simple way to get around this?
s*e
7 楼
browser may have time out setting. if that is the case, you can ask your
clients to change their browser setting. for example, as i know, IE uses
registry to control time out, but you can change the time out time.
if the timeout happens on the server side, you need to check the timeout
configuration for each intermediate node. For example, apcahe web server can
be timed out, firewall can be timed out, etc. It is my understanding that
you can always configure the time out time no matter how many
clients to change their browser setting. for example, as i know, IE uses
registry to control time out, but you can change the time out time.
if the timeout happens on the server side, you need to check the timeout
configuration for each intermediate node. For example, apcahe web server can
be timed out, firewall can be timed out, etc. It is my understanding that
you can always configure the time out time no matter how many
b*y
8 楼
what about program the server side to use http keep alive?
I am just guessing.
I am just guessing.
k*r
9 楼
Since it's a web service, you have a lot of flexibility.
The server can just return a key (job id) in the response
and start a thread to do the job. The client then polls job
status with the job ID.
hardware
【在 g*****g 的大作中提到】
: We have a remote web service, a thick client will invoke this web service
: to run a long report on server side and get the report back, which takes
: a while, say, several minutes.
: Unfortunately, the connection will be reset before the report is returned
: and
: a broken pipeline error would show up on server side. I guess some hardware
: in between detects there's no activity after certin period and resets it.
: Is there any simple way to get around this?
The server can just return a key (job id) in the response
and start a thread to do the job. The client then polls job
status with the job ID.
hardware
【在 g*****g 的大作中提到】
: We have a remote web service, a thick client will invoke this web service
: to run a long report on server side and get the report back, which takes
: a while, say, several minutes.
: Unfortunately, the connection will be reset before the report is returned
: and
: a broken pipeline error would show up on server side. I guess some hardware
: in between detects there's no activity after certin period and resets it.
: Is there any simple way to get around this?
B*g
10 楼
I think the same way.
But I don't know how to store the real result on server before client
retrieve. (I only know DB solution)
【在 k***r 的大作中提到】
: Since it's a web service, you have a lot of flexibility.
: The server can just return a key (job id) in the response
: and start a thread to do the job. The client then polls job
: status with the job ID.
:
: hardware
But I don't know how to store the real result on server before client
retrieve. (I only know DB solution)
【在 k***r 的大作中提到】
: Since it's a web service, you have a lot of flexibility.
: The server can just return a key (job id) in the response
: and start a thread to do the job. The client then polls job
: status with the job ID.
:
: hardware
k*r
11 楼
A temp dir named with the session ID would be good.
Delete the result dir after client retrieves it.
A thread or cron job to "maintain" that directory: remove
expired results.
【在 B*****g 的大作中提到】
: I think the same way.
: But I don't know how to store the real result on server before client
: retrieve. (I only know DB solution)
Delete the result dir after client retrieves it.
A thread or cron job to "maintain" that directory: remove
expired results.
【在 B*****g 的大作中提到】
: I think the same way.
: But I don't know how to store the real result on server before client
: retrieve. (I only know DB solution)
g*g
12 楼
I thought of that yesterday too, but didn't like it coz it's kind of
troublesome, couldn't think of better way though. thansk for the input.
【在 k***r 的大作中提到】
: Since it's a web service, you have a lot of flexibility.
: The server can just return a key (job id) in the response
: and start a thread to do the job. The client then polls job
: status with the job ID.
:
: hardware
troublesome, couldn't think of better way though. thansk for the input.
【在 k***r 的大作中提到】
: Since it's a web service, you have a lot of flexibility.
: The server can just return a key (job id) in the response
: and start a thread to do the job. The client then polls job
: status with the job ID.
:
: hardware
m*t
13 楼
That's my first reaction too, except the client needs to initiate
the connection with keep alive, which is what a modern browser
would do these days.
But if it takes several minutes for most requests, I'd redesign
it to use the asynchronous model others already suggested.
【在 b******y 的大作中提到】
: what about program the server side to use http keep alive?
: I am just guessing.
r*l
14 楼
We had exact problem in one previous project. Since
our client displays the result list in pages, it was
natural for us to use pagination and ask the results
page by page.
hardware
【在 g*****g 的大作中提到】
: We have a remote web service, a thick client will invoke this web service
: to run a long report on server side and get the report back, which takes
: a while, say, several minutes.
: Unfortunately, the connection will be reset before the report is returned
: and
: a broken pipeline error would show up on server side. I guess some hardware
: in between detects there's no activity after certin period and resets it.
: Is there any simple way to get around this?
our client displays the result list in pages, it was
natural for us to use pagination and ask the results
page by page.
hardware
【在 g*****g 的大作中提到】
: We have a remote web service, a thick client will invoke this web service
: to run a long report on server side and get the report back, which takes
: a while, say, several minutes.
: Unfortunately, the connection will be reset before the report is returned
: and
: a broken pipeline error would show up on server side. I guess some hardware
: in between detects there's no activity after certin period and resets it.
: Is there any simple way to get around this?
k*r
18 楼
If a job takes longer time, it can not be solved with
pagination. You can still refresh and refresh, until
the page gets the result, though.
【在 r*****l 的大作中提到】
: We had exact problem in one previous project. Since
: our client displays the result list in pages, it was
: natural for us to use pagination and ask the results
: page by page.
:
: hardware
pagination. You can still refresh and refresh, until
the page gets the result, though.
【在 r*****l 的大作中提到】
: We had exact problem in one previous project. Since
: our client displays the result list in pages, it was
: natural for us to use pagination and ask the results
: page by page.
:
: hardware
相关阅读
synchronization 锁住了什么?问几个土问题白痴求助Jar文件中的datajava覆盖率测试工具?SCEA请问如何在jbuider里面安装poi?Can I use XDoclet and packging in Tomcathelp:tomcat5 on FC4问关于SUN JAVA RE 的将float变成int的现成函数有么?Printable Java2参考大全(第四版)pdf文件IllegalStateException: Cannot forward after response has beHelp急! 如何用eclipse编辑lucenejava 源代码搜索引擎 www.codase.comjava collections framework 是啥?Re: 再请教一个 编译错误 (转载)Please recommend one introductory Java book怎样用JSP读取用户UPLOAD的文件?