我已经通过mod_proxy_ajp使用Apache和GlassFish上的默认设置获得了Apache 2.2.15代理请求到GlassFish 3.1.1。安装程序似乎在很短的时间内可以正常工作,然后在GlassFish日志中出现线程池忙的错误消息,然后在Apache日志中出现超时错误,并且在重新启动GlassFish之前应用程序不再工作。带有GlassFish线程池的Apache mod_proxy_ajp繁忙
我应该进行配置更改以防止出现此错误吗?
注意:系统并没有承受沉重的负担 - 它只能通过浏览应用程序中的页面,通过一个浏览器自行访问。这表明这个问题可能是一个线程泄漏错误,如果它不是一个错误的配置。我在浏览器中得到的错误是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
我今天发现这个链接:[mod_jk的后java.net上(HTTP:/ /www.java.net/node/701914),这表明问题是线程池的默认最大大小太小。我将尺寸增加到了50,并且还没有能够重现坠毁。我不相信我不只是推迟了不可避免的崩溃。仍在寻找重新确定的答案,并且可能会提示如何说服自己这种设置对于生产的使用是可以的。 – Ryan