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 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 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 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 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
相关阅读
怎样用class的string type name 动态生成object? Sun exam retake promoWhy My Java Program Is So Slow?connect to internetHibernate sequences questionComparator Accessor method for SortedSetHow to know the size of a java object ?请问netbeans跑java project中makefile的问题(包子答谢)Call for donation. 刚开通给中国大地震的捐款帐号!hibernate一个国际化保存unicode value的问题怎样用Widget调用command line application,什么是functionality test?xml to PDF的packageZT: impressive comment on code style/qualityJAVA下面有什么数值计算的package?Java,EJB的performancehashCode() in String Class【请教】怎么往一个applet里面填字符串?JAVA没有版主?????急问:怎么kill一个thread, thread.interrupte()不好用呀?