Thanks for the reply.

It looks to me like tomcat just gave up partway through generating the request, 
I’m trying to figure out why.  

There are no exceptions in either my application logs or the tomcat log itself, 
which is frustrating.

Thanks, I’ll look into the executor.

Apache matches what is set in my connector:

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      800
MaxClients       800
MaxRequestsPerChild  0
</IfModule>

Yes, the connector settings should be fine, there are usually less than 20 
httpds.

Cheers,
Ian

On April 15, 2014 at 3:13:08 PM, Christopher Schultz 
(ch...@christopherschultz.net) wrote:

-----BEGIN PGP SIGNED MESSAGE-----  
Hash: SHA256  

Ian,  

On 4/15/14, 2:52 PM, Ian Long wrote:  
> I need some help from all the tomcat experts out there! I am using  
> tomcat behind apache httpd using mod_jk (1.2.39). About 50-100  
> times per day (out of many requests), I’m getting an internal  
> server error from Tomcat (error 500), without any exceptions in my  
> code, nor in Tomcat logs. I am only seeing the error in my New  
> Relic application monitoring tool, and I can see them in the mod_jk  
> logs if I turn on debug.  

As much fun as reading debug logs is, I wasn't able to find a problem  
in what you posted. Can you maybe highlight the section that indicates  
a problem?  

You also didn't post the exception from the Java side.  

> My server is not heavily loaded, with a load average hovering  
> around 0.5 on a 4 cpu system.  

How many httpd processes are serving this Tomcat? Do you have a  
mismatch between the number of connections coming from httpd and the  
number of connections available on the Tomcat side (Connector)?  

> You can see the internal error below at 13:59:13.790.  

Yes, we can see that there was an error, but not what the error was.  

> My worker setup is very simple:  
>  
> worker.list=worker1 worker.worker1.port=8009  
> worker.worker1.host=127.0.0.1 worker.worker1.type=ajp13  
> worker.worker1.connection_pool_timeout=600  
> worker.worker1.connect_timeout=10000  
>  
> My Connector is also straightforward:  
>  
> <Connector port="8009" connectionTimeout="600000"  
> minSpareThreads="5" address="127.0.0.1" URIEncoding="UTF-8"  
> enableLookups="false" disableUploadTimeout="true"  
> maxSpareThreads="75" maxThreads="800" protocol="AJP/1.3" />  

That all looks okay to me on the face of it. Just a note: you may want  
to use an <Executor> for better control of the thread pool.  

What connector are you actually using  

Is 800 threads enough to handle whatever might be coming from httpd  
(or all of your httpd instances)?  

- -chris  
-----BEGIN PGP SIGNATURE-----  
Version: GnuPG v1  
Comment: GPGTools - http://gpgtools.org  
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/  

iQIcBAEBCAAGBQJTTYSWAAoJEBzwKT+lPKRYzAkP/1Eeusa0Jh6uFoUFg0+wq/cO  
IF8F0DkQXZ5d1WrYtF3nRhcNXclgfl6kYpNyz9dSN55Sk2hrWFZcSGZnMu4ZZvQE  
jMg+555tPm36QmmAw3NzUm6wwTpcByjsZuj10fsigiaNW3ucAc2vsQ40ETH5LH+/  
E4crD6PFBSfNe5qcF51T6qcPVMMaXxjd5aBWRBfT2sUEogRg3o5Xm6zal+fwQrfR  
v4mbvwC4bz7ysCXGZQxSh7qQrorpXePIqCrUekAXxPRGxGXbUvj8+alVjY7p0Him  
w5WyyzbEqIymrARoip/+Xd1nRe7bWdt0sUBqBsKn7KKvUVvvIMbKmtAn398zcP9k  
l9746MuX0Z9JGuCNDeX/giaUeijckjyY2WjxWY/mU9v75v02jqpPlgzZZhELKv/3  
ScE13HgxzPHAiDNXHJuQsJL8HxRbtl29aPV+406kQbolzfMudxXPU2hSIi8MDiYn  
hTJSZwp47bQngD9Ym8v+EdeExvRg2xLhlIuJc5j+34E9J5R9p/QC7Ru6YyzpESO5  
olTzG/5Dt4V75q7mRkMtNiIWku9Ur5dtD+wjLAcQPmcoUuN0pX+rl2L4a7Wp+mqO  
rCuEZK5Y1S6/DBlu7UcBALe/T0OG8nzld4xLKZJR/oluuQSRXlRw6div4DaoqQMf  
4PjjoG0+Hj2KS2aQm/JQ  
=oqiw  
-----END PGP SIGNATURE-----  

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

Reply via email to