Re: Converting WO app to Multithreaded WO app...
Re: Converting WO app to Multithreaded WO app...
- Subject: Re: Converting WO app to Multithreaded WO app...
- From: Guido Neitzer <email@hidden>
- Date: Mon, 9 Apr 2007 08:06:55 -0600
On 09.04.2007, at 03:12, Shravan Kumar.M wrote:
We have a WebObjects built application. Its performing slow and it
becomes even slow when multiple users access the application, it
crashes, it times out and so on.
Hmm. Wouldn't it be more helpful to find the slow places first and
see, how you can speed them up? Then, find the places where it
crashes and fix them? The timeout - okay, might not help to
multithread it, if it still slow it will time out on more requests
concurrently ...
My approach would be: find the places where it is slow, find out why
this pages or methods are slow, fix that. You can do that by:
- Profiling the app in development. Profiler, simple logging, feeling.
- Logging in deployment / development (RR-Loop logging, override
dispatchRequest in Application, place timestamp logging before and
after super.dispatchRequest() )
- Statistics in Deployment (Turned on? If not, turn it on in
JavaMonitor!).
- Database logging - log queries that take longer than xy
milliseconds. If there are really slow queries, optimize them. Use
indexes, batch fetching, raw rows, whatever.
- Look for memory usage problems.
- Look for deadlocked applications - if the WO adaptor finds one
instance that doesn't answer it waits for a while and tries another
instance. That can make it feel slow. Check whether ALL instances are
answering requests.
- Check whether general access is fast to the server.
- Check with top whether you have enough memory or whether the server
is swapping (slows things incredibly down).
After all you can switch on concurrent request handling.
1) What is the effort required to convert my WO app (or) in general
a WO app to a Multithreaded application ?
2 minutes configuration on the app-level, if the app is well written,
but it doesn't sound like that. More time on the EOF level to isolate
long-running things and put them on different db connections.
3) Also, can you tell me any efficient tips to debug the
application for finding out what is sucking the application
performance ?
See above.
4) Any other directions towards solving this problem are Welcome ?
Yeah, find the real problems first before you switch on new problems
with concurrent request handling.
cug
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden