目前我正在用我们的应用程序调试一个看似随机的错误。我将尝试提供尽可能多的细节。基本上过了一会儿,我们服务器上的一个应用程序池就会停止。我必须启动它,或者有时,重新启动 Coldfusion 或更糟的机器才能让事情再次运行。
服务器日志表明由于 IIS 中的 Rapid Fail Succession 事件,池已停止。(应用程序在短时间内提供 X 个错误,因此 IIS 停止应用程序)
通过 ColdFusion 错误日志,我在 IIS 错误停止我的池时得到了这个错误日志。
严重:getRealPathFromConn java.net.SocketException 中的错误:对等方重置连接:java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) 处 java.net.SocketOutputStream.socketWrite0(Native Method) 处的套接字写入错误.SocketOutputStream.write(SocketOutputStream.java:124) at org.apache.coyote.ajp.AjpProcessor.getRealPathFromServer(AjpProcessor.java:391)...等等
如果您真的需要完整的跟踪,我可以提供它,但它很长。我不确定 getRealPathFromConn 是关于什么的。我试过谷歌搜索,但还没有得出结论。在跟踪中,它们确实导致了各种应用程序中的不同文件,但有问题的行似乎彼此没有任何共同之处。
任何关于可能是什么原因或我接下来应该看哪里的想法都会有很大帮助。
编辑:我忘了说,我“相信”这是从星期一开始的。星期一之前唯一真正改变的是以下内容。
我们有一个应用程序结构:
root/app1/application.cfc
root/app2/application.cfc
root/app3/application.cfc
root/app3/website1
root/app3/website2
root/app3/website3
我改变了结构,所以两个网站都有自己的 application.cfc,因为我们正在慢慢地改变网站的工作方式。我现在正在其中两个上进行测试。由于我进行了更改,因此 apppool 不断使 app1 的应用程序池崩溃。不是任何网站,但我觉得它可能是相关的。
更新将 Coldfusion 更新到最新版本。(10,0,7,283649) 系统运行了大约一周,今天早上崩溃了。
当时的 Coldfusion-error.log:
Jan 25, 2013 8:09:11 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\\ColdFusion10\\cfusion\lib;C:\\ColdFusion10\\cfusion\jintegra\bin;C:\\ColdFusion10\\cfus ion\jintegra\bin\international;C:\\ColdFusion10\\cfusion\lib\oosdk\classes\win
Jan 25, 2013 8:09:12 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8012"]
Jan 25, 2013 8:09:12 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jan 25, 2013 8:09:12 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.23
Jan 25, 2013 8:09:21 AM org.apache.catalina.core.ApplicationContext log
INFO: ColdFusionStartUpServlet: ColdFusion: Starting application services
Jan 25, 2013 8:09:21 AM org.apache.catalina.core.ApplicationContext log
INFO: ColdFusionStartUpServlet: ColdFusion: VM version = 20.4-b02
Jan 25, 2013 8:09:29 AM org.apache.catalina.core.ApplicationContext log
INFO: CFMxmlServlet: Macromedia Flex Build: 87315.134646
Jan 25, 2013 8:09:35 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8012"]
Jan 25, 2013 8:09:35 AM com.adobe.coldfusion.launcher.Launcher run
INFO: Server startup in 25362 ms
Jan 25, 2013 8:10:04 AM org.apache.coyote.ajp.AjpProcessor getRealPathFromServer
SEVERE: Error in getRealPathFromConn
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at org.apache.coyote.ajp.AjpProcessor.read(AjpProcessor.java:319)
at org.apache.coyote.ajp.AjpProcessor.readMessage(AjpProcessor.java:445)
at org.apache.coyote.ajp.AjpProcessor.readString(AjpProcessor.java:425)
at org.apache.coyote.ajp.AjpProcessor.getRealPathFromServer(AjpProcessor.java:407)
at org.apache.coyote.ajp.AbstractAjpProcessor.getRealPath(AbstractAjpProcessor.java:1154)
at org.apache.naming.resources.FileDirContext.doGetRealPath(FileDirContext.java:198)
at org.apache.naming.resources.BaseDirContext.getRealPath(BaseDirContext.java:412)
at org.apache.catalina.core.StandardContext.getRealPath(StandardContext.java:4475)
at org.apache.catalina.core.ApplicationContext.getRealPath(ApplicationContext.java:414)
at org.apache.catalina.core.ApplicationContextFacade.getRealPath(ApplicationContextFacade.java:335)
at coldfusion.runtime.ServletContextWrapper.doGetRealPath(ServletContextWrapper.java:179)
at coldfusion.runtime.ServletContextWrapper._doGetRealPath(ServletContextWrapper.java:116)
at coldfusion.runtime.ServletContextWrapper.getRealPath(ServletContextWrapper.java:98)
at coldfusion.runtime.TemplateProxyFactory.getFullName(TemplateProxyFactory.java:1092)
at coldfusion.runtime.TemplateProxyFactory.resolveName(TemplateProxyFactory.java:202)
at coldfusion.runtime.TemplateProxyFactory.resolveName(TemplateProxyFactory.java:159)
at coldfusion.runtime.TemplateProxyFactory.resolveFile(TemplateProxyFactory.java:120)
at coldfusion.cfc.CFCProxy.<init>(CFCProxy.java:138)
at coldfusion.cfc.CFCProxy.<init>(CFCProxy.java:84)
at coldfusion.runtime.AppEventInvoker.<init>(AppEventInvoker.java:64)
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:226)
at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:112)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)
at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)
at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
at coldfusion.CfmServlet.service(CfmServlet.java:219)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:414)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:204)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
GetRealPathFromConn 异常一个接一个地通过大约 20 次左右。在事件查看器中,在 IIS 关闭池之前我当然有 5 个警告:
A process serving application pool 'domain.com' terminated unexpectedly. The process id was '3732'. The process exit code was '0xff'.
A process serving application pool 'domain.com' suffered a fatal communication error with the Windows Process Activation Service. The process id was '3052'. The data field contains the error number.
A process serving application pool 'domain.com' terminated unexpectedly. The process id was '7972'. The process exit code was '0xff'.
A process serving application pool 'domain.com' suffered a fatal communication error with the Windows Process Activation Service. The process id was '4736'. The data field contains the error number.
A process serving application pool 'domain.com' terminated unexpectedly. The process id was '8016'. The process exit code was '0xff'.
Application pool 'domain.com' is being automatically disabled due to a series of failures in the process(es) serving that application pool.