tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Edson Richter <>
Subject Re: Help in diagnosing server unresponsiveness
Date Fri, 01 Feb 2013 19:32:13 GMT
Em 01/02/2013 17:20, Christopher Schultz escreveu:
> 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.

When I mention thread programming, I mean WebApps that start (Java) 
threads to do background work, like import data, send automatica 
notifications, and so on. I know it is a (almost) bad practice to have 
web apps creating threads, but this is so common in real world 
enterprise apps!


> 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 -
> bAEAnjhZlD0T6tK4jEI1XkszWmVZ4R85
> =FwGs
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

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

View raw message