У меня есть Apache 2.2.15, который проксирует запросы к GlassFish 3.1.1 через mod_proxy_ajp, используя настройки по умолчанию как Apache, так и GlassFish. Кажется, что настройка работает нормально в течение очень короткого времени, а затем я получу сообщение об ошибке «Пул потоков занят» в журнале GlassFish, за которым следует ошибка тайм-аута в журнале Apache, и приложение не будет работать снова, пока я не перезапущу GlassFish.
Должен ли я внести изменения в конфигурацию, чтобы предотвратить эту ошибку?
Примечание: система не находится под большой нагрузкой - к ней можно получить доступ только одним браузером, перемещаясь по страницам в приложении. Это предполагает, что проблема может быть ошибкой утечки потока, если это не неверная конфигурация. Ошибка, которую я получаю в браузере: 500: Внутренняя ошибка сервера.
Ошибка в журнале GlassFish:
SEVERE|glassfish3.1.1|org.apache.tomcat.util.threads.ThreadPool|_ThreadID=17;_ThreadName=Thread-2;|threadpool.busy
Ошибка в журнале Apache:
[error] (70007)The timeout specified has expired: ajp_ilink_receive() can't receive header
Моя конфигурация прокси в Apache:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
ProxyPass / ajp://mydomain:8009/
ProxyPassReverse / ajp://mydomain:8009/
А в GlassFish я просто запускаю следующие команды после установки:
asadmin create-http-listener --listenerport 8009 --listeneraddress 0.0.0.0 --defaultvs server apache-proxy
asadmin set configs.config.server-config.network-config.network-listeners.network-listener.apache-proxy.jk-enabled=true