A different side of this - JspServlet and the code we are using to compile
and load
servlets is quite complex ( and ugly in some places ). There are a lot of
weird cases where tomcat needs
to do special things for jsps, and jsps may behave differently than a
servlet. All this
is IMO a bad thing, and I think Remy's concerns are in part due to this.

He is also right in that JSPs are _not_ templates, they are supposed to work
just like
servlets.

Few questions:
- do you compile the 10.000 jsps at runtime, or part of the build and then
at runtime
they behave like regular servlets ( but still want to unload what is not in
use ) ?

- could you use a different JspServlet in your application - that would add
unloading,
but without adding this to the real JspServlet ( maybe just add few hooks )
? If so, then
I think getting the hooks in could be done, and you could keep the extra
features in a
separate module ( maybe in sandbox or sf.net or some modules directory, not
part
of the core distro initially ).

- or maybe this could be done at a lower level - i.e. for all servlets ?
Maybe add few hooks to
allow servlets to be unloaded ( via JMX for example ), and have a separate
monitoring module that
picks servlets to unload based on any criteria.

In general - I think getting few extra hooks to enable this would be doable,
even more if it
would allow simplifying the current code. Then for the actual module - it
may be added later,
after it proves to be generally useful or maybe remain a separate component
for special needs.


Costin


On 5/17/06, Oliver Dewdney <[EMAIL PROTECTED]> wrote:

The issue of too many jsp files loaded is an issue for us as well. We have
a
CMS system that generates jsp files as its output and while it is not the
best model for publishing content, it is certainly easy! We have > 10,000
jsp files generated through templates putting a mixture of static and
dynamic content on the pages. The solution is not to buy more memory as we
are on a 32-bit machine and have given all available user mode memory to
the
jvm.

I do not think that it is a isolated case, but a very significant problem,
and a significant number of application servers have the ability to set
the
number of cached templates/what have yous - even IIS3!

I am working on a patch which addresses some of the issues raised in the
thread, such as turn-on-able and not altering the code path too much in it
off state. I think that also the issue of unloading is not valid, as it
already happens when a dependant file changes and the jsp is recompiled.
Of
course if the jsp had a one time only initialization requirement then the
developer could specify not to enable the LRU cache of jsp servlet engine.

I think that the externalizing of static string data is a diversion on the
problem, but I would go for a single buffer and use JspWriter.write( cbuf,
offset, length ) to sent the right portion.

So, what are the requirement to getting a patch accepted in tomcat 5.5?

Oli Dewdney
Senior Developer
LB Icon

This e-mail is only intended for the person(s) to whom it is addressed and
may contain confidential information. LB Icon does not accept
responsibility
for any loss or damage caused by this email or any attachments. Unless
clearly stated to the contrary, any opinions or comments are personal to
the
writer and are not made on behalf of LB Icon. If you have received this
e-mail in error, please notify us immediately at [EMAIL PROTECTED] and
then
delete this message from your system. Please do not copy it or use it for
any purposes, or disclose its contents to any other person. Thank you for
your co-operation.

LB Icon is the business name of Aspect Internet Holdings Limited, Aspect
Technologies Limited, LB Icon Limited and Escador Limited.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to