Additional Blogs by SAP
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member
0 Kudos

code, pre {font-size:100%;}
pre

code
hr

.sapTxtSml {font-size:x-small;}
</style>

Fast


When the browser requests for page, it expects that response comes quickly. The user expects this too. Also the proxies and firewalls expect the quick answer.

This means not only that the web application must be polite and do not make the user wait, but also it means that long processed requests can be timed out[1] by every part of the client-server chain: proxies can cancel the request, browser can cancel it, even the user can just close the browser.



Slow


Let us start from the easiest, but the most important: the User™.

How to make him to wait until the processing is done? Every developer knows: just write("Please wait..."). Hopefully the User™ reads the message and does everything what is written.

There are many methods for such warning already developed:

For the shortest operations normally the sand-glass cursor is used. For such simple cases there is the . This tag inserts the script which disables all potentially submitting elements (buttons) and switches the cursor into sand-glass mode.


Slower


For the longer operations we use the Loading Page™. Like this:

Loading...


See also much more detailed desciption from Eddy De Clercq.


Still slower


All the decribed above is intended to force the User™ not to cancel the operation. But if the operation takes too long, it will be canceled either by browser or by proxy.
There is no way (I mean normal way) to postpone these timeouts[1]. The only way is to send the answer before the operation is finished.

Unfortunatelly the BSP does not allow to send the response by parts. So, if there is no chance to split the processing into shorter parts, the only way left is the parallel processing. As one option - SAP R/3 allows to start and monitor the background jobs. Unfortunatelly this is out of my knowledge, let the experts describe how to do this.

Conclusion


Question:


My application does the large request to the database. It takes a long time. In some cases I even get the timeout error while loading page. Is there the standard way or the option to postpone the timeout? How to avoid this timeout?

Answer:


No! There is no standard way of solving this problem. You must reconsider the architecture of your application.


Footnotes:

] - Here described the processing timeout. Do not mix it up with the session timeout! The session timeout is the attribute of the server and it means the max time between two requests. Not the time of the request processing.] - "Tag" means the element from the BSP extension. I refer to the standard BSP extension XHTMLB.
8 Comments