tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <ch...@christopherschultz.net>
Subject Re: Help in diagnosing server unresponsiveness
Date Fri, 01 Feb 2013 19:20:28 GMT
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Howard,

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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEAREIAAYFAlEMFXwACgkQ9CaO5/Lv0PC0rACgw7bfEDyVZhHr4V5IWPndxM8Z
bAEAnjhZlD0T6tK4jEI1XkszWmVZ4R85
=FwGs
-----END PGP SIGNATURE-----

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


Mime
View raw message