Hi, 

I’m running into a problem with my production tomcats (7.0.52)  that I can’t 
track down. Occasionally (10 times an hour maybe) I’m getting a HttpServerError 
500 error that isn’t appearing in tomcat or my application logs. I see it from 
my NewRelic monitoring agent though, which is how I realized I was getting 
them. Most of the requests are completing successfully. 

I am running Tomcat on RHEL 6.5, behind Apache httpd using mod_jk. I’ve 
attached the relevant (I hope) bits of config below. I am not sure why I’m not 
seeing anything in the tomcat logs. I am also running it through the Tanuki 
Java Wrapper . 

I am using the latest version of mod_jk (1.2.39).

Does anyone have any ideas?  

When I turned on debugging for mod_jk I saw the 500 error, but not really that 
helpful. 


log4j.properties (WEB-INF/classes) 
================ 
# Set root logger level to DEBUG and its only appender to CONSOLE. 
log4j.rootLogger=ERROR, file 

### direct log messages to stdout ### 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 
log4j.appender.stdout.encoding=UTF-8 

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.file.File=/opt/tomcat-instance/ops-center.opterus.net/logs/ops-center.log
 
log4j.appender.file.DatePattern='.'yyyy-MM-dd 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p [%t] %c{1}:%L - 
%m%n 
log4j.appender.file.encoding=UTF-8 

### set log levels - for more verbose logging change 'info' to 'debug' ### 
###log4j.logger.org.hibernate = debug 
log4j.logger.com.opterus.opscenter=ERROR 
log4j.logger.org.springframework.security.saml=ERROR 
log4j.logger.org.opensaml=ERROR 
log4j.logger.PROTOCOL_MESSAGE=ERROR 

mod_jk.conf 
=========== 

LoadModule      jk_module modules/mod_jk.so 
JkLogFile       /var/log/httpd/mod_jk.log 
JkLogLevel      error 
JkWorkersFile   /etc/httpd/conf.d/workers.properties 
JkShmFile       /var/log/httpd/jk.shm 

server.xml 
======== 


<Connector port="8009" connectionTimeout="600000" minSpareThreads="5" 
packetSize=“16384" address="127.0.0.1"URIEncoding="UTF-8" enableLookups="false" 
disableUploadTimeout="true" maxSpareThreads="75" maxThreads="400" 
protocol="AJP/1.3" /> 


worker.properties 
============= 

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 
worker.worker1.max_packet_size=16384 


Apache Virtual Host 
=============== 


ExpiresActive On 
ServerName ops-center.opterus.net 
DocumentRoot 
/opt/tomcat-instance/ops-center.opterus.net/ops-center/appBase/ROOT 
ErrorDocument 503 /error/opterus/503.html 
# Use separate log files for the SSL virtual host; note that LogLevel 
# is not inherited from httpd.conf. 
ErrorLog logs/ssl_error_log 
#TransferLog logs/ssl_access_log 
LogLevel warn 
SSLEngine on 
SSLProtocol -All +TLSv1 +SSLv3 
SSLHonorCipherOrder On 
SSLCipherSuite 
ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:!RC4:HIGH:!MD5:!aNULL:!EDH 
SSLCertificateFile /etc/httpd/conf/ssl.crt/opterus.crt 
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/opterus.key 
SSLCertificateChainFile /etc/httpd/conf/ssl.key/gs_intermediate.pem 
SSLCACertificateFile /etc/httpd/conf/ssl.key/gs_ev_root.pem 

SetEnvIf User-Agent ".*MSIE.*" \ 
nokeepalive ssl-unclean-shutdown \ 
downgrade-1.0 force-response-1.0 

# Per-Server Logging: 
# The home of a custom SSL log file. Use this when you want a 
# compact non-error SSL logfile on a virtual host basis. 
# LogFormat "%h" combined 
# CustomLog /dev/null combined 
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" 
combined 
CustomLog logs/ssl_access_log combined 

JkStripSession On 
JkMount /* worker1 
JkUnMount /server-status worker1 
JkUnmount /res/* worker1 
JkUnmount /images/* worker1 
JkUnmount /error/* worker1 
JkUnmount /blank.html worker1 
JkUnmount /tiny_mce_*/* worker1 
JkUnmount /lbcheck.faces worker1 

<FilesMatch "\.(gif|ico|jpg|jpeg|bmp|png|js|css)$"> 
ExpiresDefault A29030400 
Header append Cache-Control "public" 
</FilesMatch> 

<FilesMatch "\.(js|css)$"> 
Header set Vary "Accept-Encoding" 
</FilesMatch> 

<Files blank.html> 
ExpiresDefault A29030400 
Header append Cache-Control "public" 
</Files> 
</VirtualHost> 


Thanks for any help! 

Cheers, 
Ian 

Reply via email to