Hello everybody.
A client of us has a server running the following configuration:
*) single-proc P3 1 GHz with 512 Mb RAM
*) Win2K advanced server (SP2 + pre-SP3 fixes)
*) IIS 5.0 (with every security patches)
*) Resin 2.1.3 (just 1 srun working behind IIS thru ISAPI.dll filter)
There are in reality several instances of a server like this, balanced
thru the NLB mechanism. This MS-based architecture was not our choice,
but a customer constraint (no comment on this, please ). However, the
problem I'm reporting here has been experienced against a standalone
machine, without any sort of load balancing.
The server is running several ASP applications, but we are the only one
using Resin. Our application is implementing an applet/servlet
architecture, applying an HTTP-tunneling technique based on POST
request, in order to manage communication between
applets and
servlet.
We have defined just 1 stateless servlet serving every applet.
If our application runs standalone there is no problem. When it works
with the other ASP apps we observe a crash quite frequently (something
like once a day). The point is that it is always IIS crashing, not Resin
(surprise, surprise!).
Sometimes IIS goes down nicely and restart in a few seconds: Resin
remains up & running, reestablishing correctly the connection with IIS.
In other occasions IIS goes down so badly that the operating system is
corrupted and the machine requires a reboot.
Observing the IIS logs we see that sometimes the last request was a POST
to our servlet, but not always.
The point is that if we stop Resin or disable our application, the crash
never occurs.
Do you have any comment or hint?
I suspect that IIS is not able to handle many POSTs thru ISAPI.dll
filter and sometimes it crashes (because AFAIK, the dll is working in
process with IIS). It's true anyway that the load is not so heavy:
before last bad crash I observe 12 POST requests and 1 ASP request in
the last 10 seconds before death. My expectation is that even if POSTs
are frequent, the ISAPI filter should just forward the packet to srun
without examine it beyond the header. So the real load on IIS should be
frequent but small both in terms of memory and cpu. Do you agree with
me? Any clue?
Thanks in advance!
Giuliano