After the request parameters are parsed, Tomcat makes it's parameter map 
read-only (i.e. "locked").  I suspect that this is the source of your 
problems.  Having said that, if you really do have two threads accessing a 
Request instance, then you really really need to re-design your application 
;-).

"Marziou, Gael" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
Hi,

As a preamble, let me say that I am not complaining about Tomcat (as the
problem root cause is uncertain) and I don't expect much assistance as
we are happy with our workaround.
However, our experience could help others or someone may have other
ideas.

We have recently switched a stable web application from JRun 4 to Tomcat
5.5.20 on Windows 2003 + Sun's JRE 1.5.0_08, running some testing for
months, but when we moved to production environment we immediately
experienced errors IllegalStateException: No modifications are allowed
to a locked ParameterMap.

Stack trace analysis concluded to RequestFacade objects shared between 2
threads.

We made code reviews of our application code and Tomcat's code and did
not find any thread safety issues.

So, we checked all differences between staging and production, we
thought that the major difference was that the staging server was a
single CPU machine while the production servers had 2 physical
processors and 4 logical ones.

So, we constrained the Tomcat service to run on only one processor by
setting its processor affinity mask to 1 (run on CPU 0) and after
several weeks of monitoring we concluded that it "fixed" the problem.

So, we used a small utility (search for setaffinity.zip) to patch the
affinity mask in the Tomcat service executable (tomcat5.exe).

Later on, we set up a second production environment also on bi-processor
servers but we did not experience the same issue.
The hardware is not exactly the same as first production setup and the
OS is also different (Windows 2000 on 2nd env, Windows 2003 on 1st env
having the issue).

So, I don't believe it's a Tomcat, I would rather think to an H/W, or
JRE or OS issue.
In any case, it's a rather complex issue to investigate and we haven't
enough time for this as we are happy with performances running on one
single CPU.

Thanks,

Gael Marziou
Hewlett Packard

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to