Ian Bicking wrote:
> I wonder if it would be good enough if Webware detected wedged
> threads, and increased the number of threads to make up for it.
> Eventually it would be nice to kill them (kill -9 probably required),
> but it would only be to retrieve the resources, not to keep the
> AppServer alive.
I think it would be great for WebKit to detect wedged threads, increase the
size of the thread pool, and try to log what was happening when the thread
got wedged. At the very least it ought to be possible to log which servlet
was running. Also optionally send an email to the administrator whenever
It would also be nice for the thread pool information to be available
through an Admin page and also perhaps through an XML-RPC interface.
>> Python 2.2
>> Webware 0.8
>> RedHat Linux 7.3
>> A couple C extensions: DCOracle2 and pymqi (interface to
>> IBM's MQSeries)
> I would expect that these C extensions would be the source of the
> problem. They always seem to be. Sometimes I wonder if multiple
> processes really are the way to go. They are much easier to manage...
> well, maybe not easier, but rather possible.
Multiple processes are definitely more resilient, but unfortunately much
less efficient, especially when it comes to caching SQL query results in
memory, session storage, etc. It's the caching stuff in memory part that
I'd really hate to give up, or rather, I'd hate to have to cache 10 copies
of something in memory if I had 10 processes, when right now just 1 copy is
all I need.
Maybe a hybrid strategy could be used -- a small pool of processes (say, 2
or 3) each of which has a pool of threads. The adapter would use session
affinity to direct all requests for a given session to the same process, so
we still have all the benefits of storing sessions in memory. On some
schedule the adapter could "expire" a process by no longer directing
requests without session parameters to a given process, and once all active
sessions handled by that process have expired, it would kill that process
and start up a new one to take its place.