【发布时间】:2011-05-03 11:39:52
【问题描述】:
我们的实时服务器有问题。偶尔页面加载不出来,白底纯黑文字显示如下错误:
Server Error
The server encountered an internal error and was unable to complete your request
Application server is busy. Either there are too many concurrent requests
如果我查看网站的错误日志,在出现错误时使用以下命令:
grep "12:17:33" error_log
这样的行被返回:
[Tue May 03 12:17:33 2011] [notice] jrApache[14352: 21512] returning error page for JRun too busy or out of memory
然后,如果我在 Coldfusion cfserver.log 中搜索,我会提前几秒钟发现这些错误:
05/03 12:17:29 错误损坏的表单数据:提前结束 java.io.IOException:损坏的表单数据:提前结束 在 com.oreilly.servlet.multipart.MultipartParser.(MultipartParser.java:177) 在 com.oreilly.servlet.multipart.MultipartParser.(MultipartParser.java:99) 在coldfusion.filter.FormScope.fillMultipart(FormScope.java:190) 在coldfusion.filter.FusionContext.SymTab_initForRequest(FusionContext.java:369) 在coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:33) 在coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) 在coldfusion.filter.CachingFilter.invoke(CachingFilter.java:53) 在coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:126) 在coldfusion.CfmServlet.service(CfmServlet.java:200) 在coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) 在 jrun.servlet.FilterChain.doFilter(FilterChain.java:86) 在coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) 在coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) 在 jrun.servlet.FilterChain.doFilter(FilterChain.java:94) 在 jrun.servlet.FilterChain.service(FilterChain.java:101) 在 jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106) 在 jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42) 在 jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286) 在 jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) 在 jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) 在 jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320) 在 jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) 在 jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266) 在 jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
05/03 12:17:29 错误(JRun 服务:ProxyService [jrun.servlet.jrpp.JRunProxyService@500b675])JRunPRoxyServer.invokeRunnable: java.lang.IllegalStateException 在 jrun.servlet.JRunResponse.getWriter(JRunResponse.java:205) 在 jrun.servlet.JRunResponse.sendError(JRunResponse.java:597) 在 jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:328) 在 jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) 在 jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) 在 jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320) 在 jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) 在 jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266) 在 jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
java.lang.IllegalStateException 在 jrun.servlet.JRunResponse.getWriter(JRunResponse.java:205) 在 jrun.servlet.JRunResponse.sendError(JRunResponse.java:597) 在 jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:328) 在 jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) 在 jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) 在 jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320) 在 jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) 在 jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266) 在 jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
我真的不知道从这里做什么。
如果页面被刷新,那么它加载时不会出错。我不知道如何复制该错误,它似乎不会发生在任何特定页面或任何特定时间。
我试过设置:
Maximum number of simultaneous Template requests: 100
在 Coldfusion 管理员中,我根据 Steven Erat 的帖子完成了这项工作:http://www.talkingtree.com/blog/index.cfm/2005/3/11/ContextSwitchingBad
但我仍然遇到错误。将其增加到更高的值会有帮助吗?
然后是较长的 Java 错误的“过早的形式结束”部分,我不确定这是否相关,也不明白它的含义。
我还查看了我的访问日志,排除了在出现任何错误时调用的任何图像或 js 文件,我有各种返回 503 http 状态的 CFM 页面,还有一些它们是 CFM 页面,以 Javascript 内容类型返回,并且在表单发布后永远不会被请求。
总之,我收到了一些非常直截了当的错误消息,目前我可以重现它们,如果我按 F5,页面加载正常,我想知道是否有人可以帮助我理解问题的根源。
最后一件事,我们正在使用 CF9 运行 RHEL 5 服务器,并且我们最近已从 CF7 升级。在升级之前没有发生此错误。
【问题讨论】:
-
我今天安装了FusionReactor,它要求我同时安装一个新的JRE,我做到了。然后我不得不重新启动coldfusion。
-
从那以后我就没有遇到过这个错误,但现在不知道这三件事中哪一个解决了这个问题。我想不是重启,就像我之前做过的那样,虽然它可能只是暂时释放了 RAM?有什么想法吗?
标签: coldfusion