Pointing Multiple contexts to single webapp

2010-06-20 Thread Kishore Kumar Manthangod
I have a single webapp. But this has to be accessed from multiple contexts

for example : http://localhost:8080/abc
http://localhost:8080/cde
http://localhost:8080/xyz

I did this using having multiple context tags in the Host tag similar to
the following

Context path=abc docBase=MY_WEBAPP_FOLDER /
Context path=abc docBase=MY_WEBAPP_FOLDER /
Context path=abc docBase=MY_WEBAPP_FOLDER /

The problem with this is, it is duplicating all the resources in the webapp
and starting up all the path by loading all resources. As a reason, I am
getting MemoryOutOfErrors. I want this to be done with single resource.

Any help??



- Kishore


Cleartrust RSA integration

2010-06-20 Thread Ron McNulty

Hi All

We are thinking of bringing some of our apps off proprietary J2EE servers to 
Tomcat. We would be deploying on Tomcat 6 (latest), JVM 1.6 and Linux on a 
VM (not sure of versions). One of the requirements is to authenticate using 
RSA Cleartrust.


From my reading, Tomcat does not support this. The recommended solution is 

to front Tomcat with Apache, and let Apache do the Cleartrust integration.

The links I have found are a bit ancient - are my assumptions still correct? 
Also, our system architects seem to think this setup is insufficiently 
secure - comments?


Regards

Ron


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: Setting the Right Amount of Memory

2010-06-20 Thread André Warnier

Caldarale, Charles R wrote:

On Jun 19, 2010, at 18:31, André Warnier a...@ice-sa.com wrote:


As Mark writes above (and my interpretation of things) :
- a bigger Heap means that the JVM will be able to accumulate more  
dead stuff in it,
- when it is needed however, it will take much longer, because there  
is more stuff to clean up.


I thought we had taught you better than that...


Ooops.



The time it takes to perform a GC is *not* dependent on the number or  
size of dead objects, just on the live ones.


That is counter-intuitive.  Pray, why is that ?

(Or point again to a page describing the process, maybe.  That would be useful for the OP 
also).




-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



[OT] Re: Setting the Right Amount of Memory

2010-06-20 Thread André Warnier

Caldarale, Charles R wrote:


(Sent from my iPhone on a ferry in the middle of Lake Michigan.)



Posters to this forum, observe the incredible dedication of some of the 
contributors here.
I'm willing to bet that if the ferry was sinking, Chuck would be the last one on board, 
making sure there wasn't any unanswered message on this forum (or at least any wrong and 
uncorrected answer lingering).


We should have a competition about whom can post a message from the most unlikely 
location, or circumstances.  The middle of lake Michigan isn't bad for a start.

We would need some means of checking though.



-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: Pointing Multiple contexts to single webapp

2010-06-20 Thread André Warnier

Kishore Kumar Manthangod wrote:

I have a single webapp. But this has to be accessed from multiple contexts

for example : http://localhost:8080/abc
http://localhost:8080/cde
http://localhost:8080/xyz



Have a look at UrlRewriteFilter : http://www.tuckey.org

...

 As a reason, I am

getting MemoryOutOfErrors.


Have you thought of patenting that code ?  A lot of vendors would be interested in 
something like that.


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: Cleartrust RSA integration

2010-06-20 Thread André Warnier

Ron McNulty wrote:

Hi All

We are thinking of bringing some of our apps off proprietary J2EE 
servers to Tomcat. We would be deploying on Tomcat 6 (latest), JVM 1.6 
and Linux on a VM (not sure of versions). One of the requirements is to 
authenticate using RSA Cleartrust.


From my reading, Tomcat does not support this. The recommended 
solution is 

to front Tomcat with Apache, and let Apache do the Cleartrust integration.

The links I have found are a bit ancient - are my assumptions still 
correct? Also, our system architects seem to think this setup is 
insufficiently secure - comments?



Assuming the Apache Cleartrust authentication is secure..
If Apache authenticates a request, and if the Apache/Tomcat connector is mod_jk, then the 
authenticated user-id is propagated from Apache to Tomcat (*).

(Additionals info could be propagated via additional HTTP headers, or request 
attributes).
If the link between Apache and Tomcat is secure (like for example both run on the same 
machine and the connection is purely internal), then there is no reason why this would be 
less secure.



(*) whether Tomcat actually uses it, is determined by the tomcatAuthentication attribute 
of the AJP Connector.


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: [OT] Re: Setting the Right Amount of Memory

2010-06-20 Thread Pid
On 20/06/2010 10:25, André Warnier wrote:
 Caldarale, Charles R wrote:

 We would need some means of checking though.

Some means of registering a check in, by location?  Hmm.
I wonder if anyone's had that idea before...  ;)


p

 -
 To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: users-h...@tomcat.apache.org
 




signature.asc
Description: OpenPGP digital signature


Re: Setting the Right Amount of Memory

2010-06-20 Thread Mark Thomas
On 20/06/2010 00:30, André Warnier wrote:
 Robinson, Eric wrote:
 On 17/06/2010 08:59, Robinson, Eric wrote:
 If your heap size is right on the edge of your minimum for a Tomcat
 instance, you may be doing more GC work than is really needed.
 However, if you're satisfied with the response time and CPU
 utilization, you should be ok.

 Time to hit the vendor around the head with the cluebat. If the app
 is happy with less heap space then increasing it is only going to
 cause problems - mainly that GC when it happens will take longer and
 trigger longer pauses. You can mitigate this with GC config (later
 VMs may make the right choices for you anyway) but all this is just
 adding unecessary complexity.

 Mark

 With 160 instances of tomcat on the server, and most of them happy with
 64-96MB of RAM, could you take an educated guess at the negative impact
 on the server of raising the RAM to 512MB for each instance? How much
 extra CPU utilization do you think I could possibly see from all the
 extra GC?

 
 Just a note here : 160 X 512 MB = 81 GB.
 If each Tomcat's JVM is allowed to use up to 512 MB of Heap, there might
 be moments where a lot of JVM's will be using close to that amount. 
 Unless your system can really support that amount of real RAM, you may
 be in for massive swapping.

And that could be a major problem. JVMs and swapping do not place nicely
together. To quote some folks at work that have been looking at this
recently performance falls of a cliff.

Mark



-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: Setting the Right Amount of Memory

2010-06-20 Thread Mark Thomas
On 20/06/2010 10:24, André Warnier wrote:
 Caldarale, Charles R wrote:
 On Jun 19, 2010, at 18:31, André Warnier a...@ice-sa.com wrote:

 As Mark writes above (and my interpretation of things) :
 - a bigger Heap means that the JVM will be able to accumulate more 
 dead stuff in it,
 - when it is needed however, it will take much longer, because there 
 is more stuff to clean up.

 I thought we had taught you better than that...
 
 Ooops.

Me too. I was under the impression more dead objects == longer GC.

 The time it takes to perform a GC is *not* dependent on the number or 
 size of dead objects, just on the live ones.
 
 That is counter-intuitive.  Pray, why is that ?

+1. I'd to get me head around this.

 
 (Or point again to a page describing the process, maybe.  That would be
 useful for the OP also).

Mark



-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: Setting the Right Amount of Memory

2010-06-20 Thread Caldarale, Charles R
On Jun 20, 2010, at 4:24, André Warnier a...@ice-sa.com wrote:

 The time it takes to perform a GC is *not* dependent on the number or
 size of dead objects, just on the live ones.

 That is counter-intuitive.  Pray, why is that ?

All modern GC algorithms are variations of mark-sweep-compact.  The  
basic operation consists of following the object reference graph from  
a set of known roots (eg, thread stack frames), marking each  
discovered object with a found flag, and copying the found objects to  
an unoccupied area.  Unreachable (dead) objects are never encountered,  
so their number or size does not come into play.  The space occupied  
by dead objects is automatically reclaimed as live objects are copied  
over them.

There are links to various papers and descriptions on the Java  
technologies page:

http://java.sun.com/javase/technologies/hotspot/gc-index.jsp

Googling for mark-sweep-compact will get you some of the academic  
papers and continuing research into the topic.

- Chuck

(Now in a hotel watching the All Whites vs the Azzurri.)



Re: Setting the Right Amount of Memory

2010-06-20 Thread Juha Laiho

On 20.6.2010 14:06, Mark Thomas wrote:

On 20/06/2010 00:30, André Warnier wrote:

Just a note here : 160 X 512 MB = 81 GB.
If each Tomcat's JVM is allowed to use up to 512 MB of Heap, there might
be moments where a lot of JVM's will be using close to that amount.
Unless your system can really support that amount of real RAM, you may
be in for massive swapping.


And that could be a major problem. JVMs and swapping do not place nicely
together. To quote some folks at work that have been looking at this
recently performance falls of a cliff.


Yep, I've seen that as well -- and the effect really is easy to
understand, esp. in the light of how Chuck explained the
mark-sweep-compact memory management.

The live objects are somewhat scattered throughout the heap, and
walking through the live object graph will touch all of them -- thus
if any was paged out at the moment, it will be paged in (most likely
forcing some other page out). If majority of the OS-level virtual
memory consumption consists of JVM heaps, then it's very likely that
the paged-out memory page does contain a live Java object - which will
again be paged in when the owning JVM does its mark phase.

Paging is suitable OS-level memory management for processes with full
pages of data that only needs to be accessed infrequently (or perhaps 
only in the initialization phase of the application). Then these 
seldom-accessed pages can be moved out to disk, freeing RAM for more

frequently needed items. With JVM memory management, everything is
accessed every now and then, making paging a real performance-killer.

--
..Juha

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: Setting the Right Amount of Memory

2010-06-20 Thread Peter Crowther
On 20 June 2010 16:01, Caldarale, Charles R chuck.caldar...@unisys.comwrote:

 All modern GC algorithms are variations of mark-sweep-compact.  The
 basic operation consists of following the object reference graph from
 a set of known roots (eg, thread stack frames), marking each
 discovered object with a found flag, and copying the found objects to
 an unoccupied area.  Unreachable (dead) objects are never encountered,
 so their number or size does not come into play.  The space occupied
 by dead objects is automatically reclaimed as live objects are copied
 over them.

 Note that in some variants, the cost of a compact *does* vary with the
number of dead objects.  In Squeak (Smalltalk), for example, each object
header contains the object size, and hence by implication the address of the
next object header.  Squeak's GC compacts (after the mark phase) by starting
at the bottom of object memory and iterating through each object, copying
down the live ones and updating pointers on the way. In Java, this would
only ever be necessary in OldSpace - with a generational GC where you're
collecting anything other than the oldest generation, you just copy the live
objects out as you encounter them and update any pointers to other objects
in the same generation, after which you know the space is empty.  Typically,
the speed of such a compact is limited by the speed of access to memory.
Most modern memory architectures will treat such sequential read access
specially and start to read-ahead, so the memory overhead isn't as bad as it
might be.

My GC knowledge is a little out of date, so if any of the current GC experts
wish to correct me I'll be interested!

- Peter


How to speed up tomcat 5.5 jsp precompilation?

2010-06-20 Thread shunhao chen
Hi all,
 I have 2100 jsp files in my system, and I use the following ant script 
to precompile my jsp files. It takes 10 minutes to complete. 10 minutes is too 
long for me, because I also need to run class obfuscation, js/css compressor 
and test case. It’s any tips for me to speed up the precompilation?
==
The following is my ant script:
   target name=common.compilejsp
  taskdef classname=org.apache.jasper.JspC name=jasper2
 classpath id=jspc.classpath
    pathelement location=${java.home}/../lib/tools.jar /
    fileset dir=${tomcat.home}/bin
   include name=*.jar /
    /fileset
    fileset dir=${tomcat.home}/server/lib
   include name=*.jar /
    /fileset
    fileset dir=${tomcat.home}/common/lib
   include name=*.jar /
    /fileset
 /classpath
  /taskdef
 
  delete failonerror=false dir=${build.dir}/jspsrc/
  mkdir dir=${build.dir}/jspsrc/
  echo${jsp.srcdir}/echo
  jasper2 validateXml=false uriroot=${jsp.srcdir}
 webXmlFragment=${basedir}/generated_web.xml
 outputDir=${build.dir}/jspsrc 
  /jasper2    
 
  javac destdir=${jsp.compilation.destdir} optimize=off
 debug=off failonerror=${failonerror.during.compilation} 
srcdir=${build.dir}/jspsrc
 encoding=UTF-8 fork=true memoryMaximumSize=1280M
 classpath
    pathelement location=${8th.classes.dir} /
    fileset dir=${8th.lib.dir}
   include name=*.jar /
    /fileset
    pathelement location=${tomcat.home}/common/classes /
    fileset dir=${tomcat.home}/common/lib
   include name=*.jar /
    /fileset
    pathelement location=${tomcat.home}/shared/classes /
    fileset dir=${tomcat.home}/shared/lib
   include name=*.jar /
    /fileset
    fileset dir=${tomcat.home}/bin
   include name=*.jar /
    /fileset
 /classpath
 include name=**/*.java /
  /javac
   /target
 
Regards,
Eric chen




-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



RE: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' AGAIN!

2010-06-20 Thread akhlaqur Rahman
How do I unsubscribe from this list? I have tried following the unsubscribe
link in the emails and it has not worked... Any tips would be appreciated.

-Original Message-
From: David Smith [mailto:david.sm...@cornell.edu] 
Sent: 19 June 2010 22:36
To: Tomcat Users List
Subject: Re: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create
JDBC driver of class '' for connect URL 'null' AGAIN!

On 6/19/2010 1:31 PM, yucca...@live.co.za wrote:
 I have no choice left but to not let hibernate use my tomcat datasource.
This is not good. I have even moved host provider in hope that it was
previous fult tomcat install from dailyrazor (tomcat 6 does not hav
common/lib) and is meant to have tomcat/lib

 I can say that my new container is correct and that I am 100% sure that
all mus jdbc configuration is correct in zml after having gone though it at
least 20 times and checked the wiki that was linked here earlier and still
have issues. Yes mysql jdbc bin is in tomcat/lib so that is not cause of the
error. /the error is very weird though as I have another point that uses
hibernate without error on the same database. It is not possible for me to
use hibernate to use tomcat datasource sadly. Many thanks for all the help
though.


If you put the following into a jsp and call the jsp, does it work?

%...@page import=java.sql.Connection%
%...@page import=java.sql.DriverManager%
%...@page import=java.sql.SQLException%

%
Class.forName(com.mysql.jdbc.Driver).newInstance();
conn =  DriverManager.getConnection(jdbc:mysql://localhost/test? +
   user=montypassword=greatsqldb);
out.println( The connection worked!! ) ;
%


If that works then your jdbc driver is available and installed properly
(I trust there is only one copy of that jar in your entire tomcat
install ... right?). 

Now check to see if there's an xml in tomcat/conf/Catalina/localhost
matching your webapp's deployed name.  For instance if you access your
webapp as http://localhost:8088/mywebapp, there should be a mywebapp.xml
file there.  Take a look at it for the Resource ... / or ResourceLink
... / (which ever you setup) and make sure they are correct.  If this
file is not available, take a look at context.xml in your webapp's
META-INF folder (same process).  If it's not there, then the Context
...  element for your webapp is in server.xml and it should  NOT be
there.  It's bad practice and requires a full tomcat restart to make
changes.

Lastly, case matters.  Be sure everything is typed correctly including
whether it's upper or lower case. 

Now take a look at the logs and post any relevant messages including
complete stacktraces of exceptions w/o edits except to protect usernames
and passwords.

--David

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



tomcat.exe 6.0.18 to 6.0.26 stdout/stderr redirection

2010-06-20 Thread Bulkan
Hi All,

Before we upgraded from Tomcat 6.0.18 to 6.0.26 I was able to redirect
stdout/stderr of tomcat.exe using the following Python code;

 from subprocess import Popen
 logfile = open('tomcat.log', 'w')
 p = Popen(r'C:\Program Files\Apache Software Foundation\Tomcat
6.0\bin\tomcat6.exe', shell=True, stdout=logfile, stderr=logfile)

but with 6.0.26, the above code fails to redirect the output to tomcat.log,
all of the output goes to the console (cmd.exe).

Has something changed in 6.0.26 (Windows) that would effect this behaviour ?

Cheers
---
Bulkan Evcimen


RE: Setting the Right Amount of Memory

2010-06-20 Thread Robinson, Eric
 Having a borderline heap size can, in the worst case, result
 in almost continual GC activity, if there is only room to 
 allocate a minimal number of objects between GC occurrences.

For what it's worth, either this is not the case in our real-world
situation or the effect is negligible. Even though we have 160 instances
of tomcat on the same server, and all of them are trimmed to use the
minimum RAM (usually 64-96MB) and all instances are quite actively being
used, the server is still 90% idle during peak load. The server is an
8-core 2.6GHz Xeon with 32GB RAM (10GB free and no swapping).


Disclaimer - June 20, 2010 
This email and any files transmitted with it are confidential and intended 
solely for Tomcat Users List. If you are not the named addressee you should not 
disseminate, distribute, copy or alter this email. Any views or opinions 
presented in this email are solely those of the author and might not represent 
those of . Warning: Although  has taken reasonable precautions to ensure no 
viruses are present in this email, the company cannot accept responsibility for 
any loss or damage arising from the use of this email or attachments. 
This disclaimer was added by Policy Patrol: http://www.policypatrol.com/

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



RE: Setting the Right Amount of Memory

2010-06-20 Thread Caldarale, Charles R
 From: Caldarale, Charles R [mailto:chuck.caldar...@unisys.com]
 Subject: Re: Setting the Right Amount of Memory
 
 Unreachable (dead) objects are never encountered,
 so their number or size does not come into play.

For complete disclosure, I should note that dead objects in the tenured (old) 
and permanent generations are looked at (but only during a full GC), since the 
compaction phase has to figure out where the live ones can be copied to.  
However, since in nearly all cases, more than 90% of dead objects are in the 
young generation, few dead objects are examined and the cost is minimal.  The 
compaction phase for the young generation (minor GC) actually consists of 
copying the live objects to a survivor space, which is guaranteed to be empty.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY 
MATERIAL and is thus for use only by the intended recipient. If you received 
this in error, please contact the sender and delete the e-mail and its 
attachments from all computers.




RE: Setting the Right Amount of Memory

2010-06-20 Thread Caldarale, Charles R
 From: Robinson, Eric [mailto:eric.robin...@psmnv.com]
 Subject: RE: Setting the Right Amount of Memory
 
  Having a borderline heap size can, in the worst case, result
  in almost continual GC activity, if there is only room to
  allocate a minimal number of objects between GC occurrences.
 
 For what it's worth, either this is not the case in our real-world
 situation or the effect is negligible.

Not surprising - you'd have to be very unlucky to be right at the edge and see 
a lot of GC activity and be able to continue running.  Usually you'll be over 
the edge a bit, encounter OOMEs, increase the heap significantly, and be well 
away from the frequent tight heap scenario.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY 
MATERIAL and is thus for use only by the intended recipient. If you received 
this in error, please contact the sender and delete the e-mail and its 
attachments from all computers.



-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: tomcat.exe 6.0.18 to 6.0.26 stdout/stderr redirection

2010-06-20 Thread Mark Eggers
If you're running as a service, why don't you make use of --StdOutput and 
--StdError as documented here:

http://tomcat.apache.org/tomcat-6.0-doc/windows-service-howto.html

Also, if you're running as a service, the Tomcat Monitor allows you to change 
this at any point. There's a tab called Logging that allows you to set a bunch 
of parameters.

/mde/

--- On Sun, 6/20/10, Bulkan bul...@gmail.com wrote:

 From: Bulkan bul...@gmail.com
 Subject: tomcat.exe 6.0.18 to 6.0.26 stdout/stderr redirection
 To: users@tomcat.apache.org
 Date: Sunday, June 20, 2010, 6:06 PM
 Hi All,
 
 Before we upgraded from Tomcat 6.0.18 to 6.0.26 I was able
 to redirect
 stdout/stderr of tomcat.exe using the following Python
 code;
 
  from subprocess import Popen
  logfile = open('tomcat.log', 'w')
  p = Popen(r'C:\Program Files\Apache Software
 Foundation\Tomcat
 6.0\bin\tomcat6.exe', shell=True, stdout=logfile,
 stderr=logfile)
 
 but with 6.0.26, the above code fails to redirect the
 output to tomcat.log,
 all of the output goes to the console (cmd.exe).
 
 Has something changed in 6.0.26 (Windows) that would effect
 this behaviour ?
 
 Cheers
 ---
 Bulkan Evcimen
 


  


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



RE: Setting the Right Amount of Memory

2010-06-20 Thread Robinson, Eric
 For what it's worth, either this is not the case in our 
 real-world situation or the effect is negligible.

 Not surprising - you'd have to be very unlucky to be right 
 at the edge and see a lot of GC activity and be able to 
 continue running.  Usually you'll be over the edge a bit, 
 encounter OOMEs, increase the heap significantly, and be 
 well away from the frequent tight heap scenario. 

What qualifies as a tight heap and what qualifies as a significant
increase? Usually when we see OOMEs we increase the allocation by 32MB
and they go away. 

To return to the original question, is it generally better to custom-fit
the RAM allocation (as we currently do) or to unilaterally set all
instances to a higher amount that we know will not generate OOMEs, such
as 512MB?

--
Eric Robinson



Disclaimer - June 20, 2010 
This email and any files transmitted with it are confidential and intended 
solely for Tomcat Users List. If you are not the named addressee you should not 
disseminate, distribute, copy or alter this email. Any views or opinions 
presented in this email are solely those of the author and might not represent 
those of . Warning: Although  has taken reasonable precautions to ensure no 
viruses are present in this email, the company cannot accept responsibility for 
any loss or damage arising from the use of this email or attachments. 
This disclaimer was added by Policy Patrol: http://www.policypatrol.com/

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



RE: Setting the Right Amount of Memory

2010-06-20 Thread Caldarale, Charles R
 From: Robinson, Eric [mailto:eric.robin...@psmnv.com]
 Subject: RE: Setting the Right Amount of Memory
 
 What qualifies as a tight heap and what qualifies as a 
 significant increase?

Both are entirely dependent on what's running inside the JVM.  Monitoring the 
GC actions will tell you if you're close to being tight.

 Usually when we see OOMEs we increase the allocation by
 32MB and they go away.

From your descriptions, none of your webapps are memory-intensive, so 32 MB is 
likely a significant increase in the heap size - in your case.

 is it generally better to custom-fit the RAM allocation 
 (as we currently do) or to unilaterally set all instances
 to a higher amount that we know will not generate OOMEs,
 such as 512MB?

Depends on how much time you've got to spend on the problem, and how much RAM 
you've got.  If the RAM is available, it's certainly easier to set the heap 
size large for everyone and let it rip.  If you are constrained such that doing 
so will result in an overcommitment of RAM (or you like things to be just 
right), then you need to individually tune.  You might actually have a 
situation where it would work to set -Xms small (16 or 32 MB) and -Xmx large 
(512 MB), and let each JVM figure out what it really needs.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY 
MATERIAL and is thus for use only by the intended recipient. If you received 
this in error, please contact the sender and delete the e-mail and its 
attachments from all computers.


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: tomcat.exe 6.0.18 to 6.0.26 stdout/stderr redirection

2010-06-20 Thread Bulkan
Hi Mark,

I am not running tomcat as a service. I directly start tomcat.exe

Cheers



On Mon, Jun 21, 2010 at 1:41 PM, Mark Eggers its_toas...@yahoo.com wrote:

 If you're running as a service, why don't you make use of --StdOutput and
 --StdError as documented here:

 http://tomcat.apache.org/tomcat-6.0-doc/windows-service-howto.html

 Also, if you're running as a service, the Tomcat Monitor allows you to
 change this at any point. There's a tab called Logging that allows you to
 set a bunch of parameters.

 /mde/

 --- On Sun, 6/20/10, Bulkan bul...@gmail.com wrote:

  From: Bulkan bul...@gmail.com
  Subject: tomcat.exe 6.0.18 to 6.0.26 stdout/stderr redirection
  To: users@tomcat.apache.org
  Date: Sunday, June 20, 2010, 6:06 PM
  Hi All,
 
  Before we upgraded from Tomcat 6.0.18 to 6.0.26 I was able
  to redirect
  stdout/stderr of tomcat.exe using the following Python
  code;
 
   from subprocess import Popen
   logfile = open('tomcat.log', 'w')
   p = Popen(r'C:\Program Files\Apache Software
  Foundation\Tomcat
  6.0\bin\tomcat6.exe', shell=True, stdout=logfile,
  stderr=logfile)
 
  but with 6.0.26, the above code fails to redirect the
  output to tomcat.log,
  all of the output goes to the console (cmd.exe).
 
  Has something changed in 6.0.26 (Windows) that would effect
  this behaviour ?
 
  Cheers
  ---
  Bulkan Evcimen
 





 -
 To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: users-h...@tomcat.apache.org




Tomcat 5.5.26 with application is having memory/performance issue

2010-06-20 Thread Hae Loong Chan
Hi,

I have the memory issue/performance with the following situation:

a. The machine installed with Solaris 10, with memory 2GB and swap space 4GB.
b. Running Tomcat 5.5.26 with one application at Xmx1024m and -Xmx256m
using JDK1.5.0_22.
c. 10 standalone clients are sending the web service request to
application for processing the task using xmlrpc.jar continuously.
d. The script is used to get the system properties, e.g. java.home,
java.class.path, os.name, etc and then construct the http response
send back the client.
e. After 1 week plus, the web users require very long time to login
and somehow the page cannot be displayed.

I have done the following to monitor the issue:
a. Monitor the rss, vsz using ps -eo command, found that the rss and
vsz were increased slightly over time, until hitting 1.70G where the
web users experience slow performance on the page navigation in the
tomcat.
b. I ran the Tomcat by putting the -verbose:gc -XX:+PrintGCDetails
-XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC, then analyzed that the gc
heap over time is constant.
c. Use jconsole to record the heap and non-heap usage, triggerring
Full GC, observed that the heap is reset to zero and the non-heap
won't drop. Non-heap memory usage is increased over time.
d. Don't know the reason why cannot get the Tomcat runs into
OutOfMemory, the Tomcat shutdown itself without anything even the
argument -XX:+HeapDumpOnOutOfMemoryError is applied.

Did I missed out anything to track down the issue? Anyone, please
suggest and correct me.

Thanks.

Regards,
Chan.

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org