- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在过去的几天里,团队一直在努力解决一个持续存在的问题,即在非常可预测的时间间隔内,一个 ColdFusion 实例出现白屏死机。
网站每三个小时就会开始为任何 URL 返回一个空白页面。然后我们会重新启动实例,一切都会很好......再过三个小时,几乎是分钟。当然,这发生在星期五,所以所有周末的人都轮流在实例死机时重新启动它。
据我所知,在此之前没有人对 ColdFusion 或我们的服务器环境进行任何更改。在此之前,实例运行良好。
从那时起,我们发现此实例的 isapi_redirect.log 文件中充满了 Tomcat/连接错误。
我们按照 http://www.webtrenches.com/post.cfm/resolve-stability-problems-and-speed-up-coldfusion-10 上的出色说明进行操作并按照建议调整我们的连接器设置。虽然这可能对总体性能有很好的帮助,并将崩溃之间的时间范围从 3 小时更改为 3.5 小时,但它并没有解决这个问题。
在此之前,我们甚至尝试将站点从我们的一个虚拟服务器移动到另一个,但没有成功。
我们尝试重新启动 IIS,甚至在一个晚上重新启动整个服务器,看看是否有帮助,但仍然没有。
以下是我根据我们在日志和配置中看到的信息所能提供的尽可能多的信息。非常感谢任何帮助,请让我知道我可以提供哪些有用的其他详细信息。
我们正在运行 IIS v7.5.7600.16385
这是绑定(bind)到此实例的唯一网站/IIS 记录,并且是专门绑定(bind)到它的,而不是“所有网站”。
当问题发生时,我认为没有任何请求到达实例...IIS 日志显示连接仍在发生,但实例的 http.log 文件只是停止。
我不确定与 tomcat 相关的错误是问题还是症状。
出现问题时服务器运行正常,我们有几个其他 CF 实例与这个实例一起运行,没有问题。
相关实例的 CF 管理员加载并在问题期间完全响应(对我来说,过去的其他实例问题并不经常出现这种情况)。
同样,据我们所知,在这个问题开始之前,没有人直接更改我们的代码、CF 实例配置或服务器配置。
Server Product: ColdFusion
Version: 10,0,13,287689
Tomcat Version: 7.0.23.0
Edition: Enterprise
Operating System: Windows Server 2008 R2
OS Version: 6.1
Update Level: chf10000013.jar
Adobe Driver Version: 4.1 (Build 0001)
workers.properties:
worker.list=Instance_Codebase
worker.Instance_Codebase.type=ajp13
worker.Instance_Codebase.host=localhost
worker.Instance_Codebase.port=8014
worker.Instance_Codebase.max_reuse_connections=250
worker.Instance_Codebase.connection_pool_size=250
worker.Instance_Codebase.connection_pool_timeout=60
服务器.xml
<Server port="8009" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"></Listener>
<Listener className="org.apache.catalina.core.JasperListener"></Listener>
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"></Listener>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"></Listener>
<GlobalNamingResources>
<Resource description="User database that can be updated and saved" name="UserDatabase" pathname="conf/tomcat-users.xml" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" type="org.apache.catalina.UserDatabase" auth="Container"></Resource>
</GlobalNamingResources>
<Service name="Catalina">
<Executor name="tomcatThreadPool" minSpareThreads="4" maxThreads="150" namePrefix="catalina-exec-"></Executor>
<Connector port="8014" protocol="AJP/1.3" redirectPort="8447" tomcatAuthentication="false" maxThreads="250" connectionTimeout="60000"></Connector>
<Engine jvmRoute="Instance_Codebase" name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"></Realm>
</Realm>
<Host name="localhost" autoDeploy="false" unpackWARs="true" appBase="webapps">
<!--<Valve pattern="%h %l %u %t "%r" %s %b" directory="logs" prefix="localhost_access_log." className="org.apache.catalina.valves.AccessLogValve" suffix=".txt" resolveHosts="false"></Valve>-->
</Host>
</Engine>
<Connector port="8501" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" executor="tomcatThreadPool"></Connector>
</Service>
</Server>
我们的 isapi_redirect.log 示例。可以在 http://trasper.com/files/isapi_redirect.log.txt 查看全部内容.
据我们所知,问题(在此示例中)发生在晚上 11:41 左右。
[Wed Jun 25 23:40:34.503 2014] [10012:912] [info] ajp_send_request::jk_ajp_common.c (1658): (Instance_Codebase) all endpoints are disconnected, detected by connect check (27), cping (0), send (0)
[Wed Jun 25 23:40:34.504 2014] [10012:1396] [info] ajp_connection_tcp_get_message::jk_ajp_common.c (1313): (Instance_Codebase) can't receive the response header message from tomcat, network problems or tomcat (127.0.0.1:8014) is down (errno=54)
[Wed Jun 25 23:40:34.820 2014] [10012:1396] [error] ajp_get_reply::jk_ajp_common.c (2190): (Instance_Codebase) Tomcat is down or refused connection. No response has been sent to the client (yet)
[Wed Jun 25 23:40:34.823 2014] [10012:1396] [info] ajp_service::jk_ajp_common.c (2692): (Instance_Codebase) sending request to tomcat failed (recoverable), (attempt=1)
[Wed Jun 25 23:40:34.708 2014] [10012:7880] [error] ajp_get_reply::jk_ajp_common.c (2190): (Instance_Codebase) Tomcat is down or refused connection. No response has been sent to the client (yet)
[Wed Jun 25 23:40:40.477 2014] [10012:2296] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1047): Failed opening socket to (127.0.0.1:8014) (errno=61)
[Wed Jun 25 23:40:40.364 2014] [10012:8256] [error] ajp_service::jk_ajp_common.c (2711): (Instance_Codebase) connecting to tomcat failed.
[Wed Jun 25 23:40:40.825 2014] [10012:7060] [error] HttpExtensionProc::jk_isapi_plugin.c (2309): service() failed with http error 503
[Wed Jun 25 23:40:40.877 2014] [10012:10364] [error] ajp_send_request::jk_ajp_common.c (1669): (Instance_Codebase) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=61)
[Wed Jun 25 23:40:40.965 2014] [10012:10364] [info] ajp_service::jk_ajp_common.c (2692): (Instance_Codebase) sending request to tomcat failed (recoverable), because of error during request sending (attempt=1)
[Wed Jun 25 23:40:40.857 2014] [10012:1020] [error] HttpExtensionProc::jk_isapi_plugin.c (2309): service() failed with http error 503
最佳答案
感谢大家的投入和帮助。截至今天,我们已经免费运行 WSOD 超过 4 天,而且还在增加。
我们仍然不确定是什么引发了这个问题,它可能只是网络流量的一个临界点,但我非常有信心我们现在已经控制住了它。
默认情况下,当使用 Web 服务配置工具 (wsconfig.exe) 创建连接器时,连接池设置为 250 个连接,但这在默认情况下也不会反射(reflect)在 server.xml 配置中。我们更改了 AJP/1.3 连接器以指定匹配的最大线程值,并添加了 60 秒的连接超时,否则它们是不确定的。
我们还调整了 workers.properties 文件以指定 connection_pool_size 和 connection_pool_timeout 以匹配。
以前的默认设置似乎与 isapi_redirect.log 匹配,我们会在其中看到每次我们正确连接到 200 个连接时,tomcat 就会停止。匹配所有这些设置似乎有帮助。
配置更改后,我们从实例中删除并重新创建了连接器本身。通过这种方式,我们可以 100% 确定连接器与所有服务器更新的最新更改保持同步。
然后我们还在 IIS 中重新启动了网站,但我们必须确保该实例的 w3wp.exe 进程也已重置(我们终止了该进程并让它重新启动)。
然后我们恢复了所有内容,此后没有出现任何问题。
再次感谢您在这里和在 Adobe forums 上的帮助;它帮助我们专注于我们的一些问题。如果发现任何其他信息,我一定会更新这篇文章。我很确定这些步骤会对遇到连接器/tomcat 性能问题的任何人有所帮助。
以下是我们能够找到的一些对我们有很大帮助的重要资源:
1.) server.xml
改变
<Connector port="8014" protocol="AJP/1.3" redirectPort="8446" tomcatAuthentication="false">
到
<Connector port="8014" protocol="AJP/1.3" redirectPort="8447" tomcatAuthentication="false" maxThreads="250" connectionTimeout="60000">
2.) workers.properties
设置(以确保它与我们的连接数匹配)
worker.Instance_Codebase.max_reuse_connections=250
添加的行
worker.Instance_Codebase.connection_pool_size=250
worker.Instance_Codebase.connection_pool_timeout=60
3.) 删除了现有的连接器,然后使用实例的 Web 服务器配置工具 (wsconfig.exe) 重新创建它(一定要以管理员身份运行!)。
另请注意,重建连接器可能需要您将上述更改重新输入到您的 workers.properties 文件中。
4.) 重新启动 IIS 站点,其中包括确保站点的 w3wp.exe 进程已停止/终止并重新启动。
5.) 启动实例和 IIS 站点备份。
关于tomcat - ColdFusion 10 实例/Tomcat 以可预测的时间间隔死亡(死亡白屏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24434896/
我正在编写一个我想经常运行的计划任务。 问题是,如果服务器遇到高流量负载,我不希望运行此任务。 除了从 java 获取空闲/总/最大内存之外,还有什么方法可以尝试确定此任务是否应该继续? 最佳答案 G
我知道 coldfusion builder 已发布用于开发 coldfusion 9 应用程序。现在我的问题是 coldfusion builder 是否支持 COLDFUSION 8 开发?非常感
我正在尝试出于学习目的测试 Coldfusion,但我真的不知道非免费企业版添加到免费开发者版的附加功能是什么。 谢谢! 最佳答案 从法律上讲,Enterprise 是供公众消费的,而 Dev 不是。
我一直在玩这个问题一段时间了。我想要实现的是保存到MySQL数据库,然后输出到窗口,一般确认的表情符号如😀😁😂(是的,21世纪问题) 经过大量的修补和遵循本网站上的各种教程和答案之后,我设法实现
嗨伙计!我有一个关于coldfusion用户的简单问题,有没有人知道如何将动态数字转换为小数,例如我有一个代码:#number#,它等于,例如 10 但我需要将它写为 0.10 我该怎么做做吗? 试过
尝试使用方括号表示法来引用动态变量。 (我正在遍历由查询创建的一组产品,为每个与其唯一 SKU 相关联的字段创建字段,如果您对应用程序感到疑惑) 我已将其缩小到这段代码,当我尝试运行它时会抛出“无效表
我刚刚下载了 ColdFusion Builder (CFB),现在我正在尝试编写一个简单的“Hello World”应用程序。但我首先需要某种服务器,不是吗?现在我到底在这里寻找什么? “ColdF
我们正在运行 ColdFusion MX7。 我们遇到的一个问题是,我们在很多页面中都使用了很多功能。将它们放在“全局”ColdFusion 范围内会很好,而不是必须将它们包含在我们所有的页面中。 有
我已经尝试使用 key 工具将证书从 First Data 导入到我的 ColdFusion 9 设置中: keytool -importcert -keystore MYCF9Dir\runtime
在 ColdFusion 组件中,我声明了一个这样的函数: string function render(required Array actions) output=false { //... }
背景 : 我有一个处于设计阶段的新站点,正在考虑使用 ColdFusion。服务器目前正在使用 ColdFusion 和 Python 进行设置(为我完成)。 使用什么是我的选择,ColdFusion
我计划在服务器上从 ColdFusion MX7(Server 2003)迁移到 ColdFusion 11(Server 2012)。有一个其他服务器,我需要从 ColdFusion 8(服务器 2
一些背景知识:我正在从事一个将另一种脚本语言的网络应用程序转换为 ColdFusion 的项目。我遇到的一个问题是旧技术有一些函数名称与 CF 中的函数相同,但工作方式略有不同。不幸的是,在大多数情况
在 this page ,它谈到了 Windows NT、2000、XP 和 2003。幸运的是,我有一台 Windows 7 机器。 第一行说: In User Manager for Domain
ColdFusion 中获取季度第一天和最后一天的最快方法是什么? 似乎没有为此内置功能。 最佳答案 季度第一天: FirstDayOfQuarter = CreateDate(year, (quar
我正在尝试在新的 Windows 服务器 (Windows Server 2012 R2) 上安装 ColdFusion 11(标准版)。安装显然是成功的,但是当我进入管理员安装最新更新时,我不能。当
我有: 服务器详情 服务器产品 ColdFusion 版本 9,0,1,274733 版本标准 操作系统 Windows Server 2008 操作系统版本 6.0 Adobe 驱动程序版本 4.0
我们有一组文件需要 ColdFusion 复制到网络共享。但是,我们无法更改运行 ColdFusion 服务的用户,这意味着 ColdFusion 没有足够的权限访问任何网络共享。我们确实有可以访问的
这对我来说是新的:我正在查看 ColdFusion 网站。 问题是我什至找不到连接字符串。在一些 qryXXX.cfm 文件中,我发现 但我就是找不到这个数据源的存储位置。 最佳答案 数据源在 Co
停止ColdFusion输出的空白的正确方法是什么? 我知道有cfcontent和cfsetting enableCFoutputOnly。正确的方法是什么? 最佳答案 除了,和是。您可以使用它删
我是一名优秀的程序员,十分优秀!