tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <>
Subject Re: Help in diagnosing server unresponsiveness
Date Fri, 01 Feb 2013 19:20:28 GMT
Hash: SHA256


On 2/1/13 12:41 PM, Howard W. Smith, Jr. wrote:
> my app is running fine, but i'm always striving for perfection and 
> performance, and that is why I made my way from mojarra to
> myfaces, glassfish to tomee/tomcat, and jsf-managed-beans to
> cdi-managed-beans, and just early this morning from APR to NIO
> connector.

If you want to improve performance even more, ditch EJB altogether.
Moving from APR to NIO may be a good move, but it really depends upon
your requirements. For instance, APR provides superior SSL performance
but if you don't need it, NIO will probably give you better results.

>>> b) Lots of people forget to correctly close external resources
>>> (files, tcp connections, jdbc resources). Check your source
>>> code using FindBugs. It is not perfect, but will give you lots
>>> of warnings if you run on risk of not correctly closing
>>> resources. Remember, for jdbc resources, you should close all
>>> result sets first, then all statements, then all connections
>>> (not all database drivers will release resultset resources on
>>> statement close!).
> backtracking... is this a chance/time to use jdbc interceptors?
> i've seen some chatter about jdbc interceptors, but have not really
> dug into it quite yet.

That depends upon what you want to accomplish. You can get messages
about JDBC resource management problems without writing any
interceptors at all.

>>> c) Also, we see incorrect thread programming...
> this sounds good for clusters, right? i'm hoping to use clustering
> for the app that i've developed.

That depends upon what you mean by "clustering". If you want to serve
more clients (or have fault-tolerance), then "clustering" is a good
idea. "Clustering" means different things to different people. If you
just want to scale horizontally (more app servers) and use simple
load-balancing, that can be considered a cluster.

In the Java world, most people would only call it a consider it a
"cluster" if the app servers actually know about each other -- for
instance, if you are using session replication. IMO session
replication is a dog, and there are better ways to achieve similar
goals that yield much higher performance.

- -chris
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools -
Comment: Using GnuPG with Thunderbird -


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message