当应用程序超时时,如何重新启动Coldfusion应用程序服务器?
当应用程序超时时,有没有办法通过Application.cfc重新启动CF服务器?根据Adobe文档,它们显示如下:当应用程序超时时,如何重新启动Coldfusion应用程序服务器?,coldfusion,coldfusion-8,coldfusion-9,coldfusion-6,coldfusion-7,Coldfusion,Coldfusion 8,Coldfusion 9,Coldfusion 6,Coldfusion 7,当应用程序超时时,有没有办法通过Application.cfc重新启动CF服务器?根据Adobe文档,它们显示如下: <cffunction name="onApplicationEnd"> <cfargument name="ApplicationScope" required=true/> <cflog file="#This.Name#" type="Information" text="Application #Argume
<cffunction name="onApplicationEnd">
<cfargument name="ApplicationScope" required=true/>
<cflog file="#This.Name#" type="Information"
text="Application #Arguments.ApplicationScope.applicationname# Ended" >
</cffunction>
<cfexecute name = "C:\CFRestart.bat"
outputFile = "C:\output.txt"
timeout = "1">
</cfexecute>
我想做的是将上面的
替换为
,如下所示:
<cffunction name="onApplicationEnd">
<cfargument name="ApplicationScope" required=true/>
<cflog file="#This.Name#" type="Information"
text="Application #Arguments.ApplicationScope.applicationname# Ended" >
</cffunction>
<cfexecute name = "C:\CFRestart.bat"
outputFile = "C:\output.txt"
timeout = "1">
</cfexecute>
因此,当应用程序超时时,
onaapplicationnd
将运行CFRestart.bat
文件。这可能吗?首先,应用程序不会超时,页面请求会超时。请求超时时,不会调用onApplicationEnd()函数。仅当应用程序正在关闭时才调用。下面是有关CF应用程序生命周期的一些信息
其次,根据我的经验,无论出于何种原因重新启动应用程序服务器都可能掩盖了真正的问题。如果您的应用程序运行缓慢/崩溃等,那么我建议您调查发生这种情况的真正原因,而不是重新启动它
然而,我想不出这在原则上不起作用的原因,但如果这真的是你想要做的,我建议你进行一次快速测试
希望有帮助。首先,应用程序不会超时,页面请求会超时。请求超时时,不会调用onApplicationEnd()函数。仅当应用程序正在关闭时才调用。下面是有关CF应用程序生命周期的一些信息 其次,根据我的经验,无论出于何种原因重新启动应用程序服务器都可能掩盖了真正的问题。如果您的应用程序运行缓慢/崩溃等,那么我建议您调查发生这种情况的真正原因,而不是重新启动它 然而,我想不出这在原则上不起作用的原因,但如果这真的是你想要做的,我建议你进行一次快速测试 希望这会有所帮助。除非您有一个非常安静的应用程序,否则onApplicationEnd是,因为每次有人访问该应用程序时,超时都会重置 如果使用应用程序重新启动coldfusion实例,我会非常不舒服。我可以看到各种可怕的安全问题等迫在眉睫。老实说,我不太清楚,如果应用程序结束,为什么要重新启动服务器 此外,根据文档,当服务器重新启动时,会调用onApplicationEnd,因此,如果您确实能够正常工作,那么当您重新启动服务器时,应用程序也会尝试重新启动服务器。这将变得非常混乱。除非您有一个非常安静的应用程序,否则onApplicationEnd是,因为每次有人访问该应用程序时,超时都会重置 如果使用应用程序重新启动coldfusion实例,我会非常不舒服。我可以看到各种可怕的安全问题等迫在眉睫。老实说,我不太清楚,如果应用程序结束,为什么要重新启动服务器
此外,根据文档,当服务器重新启动时,会调用onApplicationEnd,因此,如果您确实能够正常工作,那么当您重新启动服务器时,应用程序也会尝试重新启动服务器。这将变得非常混乱。不要相信您可以从ColdFusion调用.bat脚本。因为一旦停止服务,
也将终止(认为它在CF服务下运行),永远不会重新启动
猜测您的服务器经常出现故障,因为您遇到了内存不足(OOM)异常。为了克服这些情况下的困难,我将批处理脚本设置为一个定期重启服务器(比如每24、12或6小时重启一次)的脚本(参见第一个答案)。选择适合您的情况的时间间隔
假设OOM是根本原因,我建议下载Java JDK,配置ColdFusion以使用它(即jvm.config文件中的jvmhome),并传递参数以启用JMX连接,这是JDK附带的。从那里,您可以生成一个堆转储文件和/或告诉VM在OOM上生成一个堆转储文件。Tehn我在运行过程中取得了非常好的成功,它有一个可疑的泄漏报告,不止一次帮助跟踪服务器OOM崩溃的根本原因
如果这不是您的场景,那么我建议在使用ColdFusion enterprise时启用快照,否则cfstat是您在standard上的朋友。对于这两种情况,您也可以在服务器运行缓慢时进行调整。这可以帮助您连接到有问题的服务器,并在适当的时间生成转储,或者确定问题是否与负载相关 不要相信你能从ColdFusion调用.bat脚本。因为一旦停止服务,
也将终止(认为它在CF服务下运行),永远不会重新启动
猜测您的服务器经常出现故障,因为您遇到了内存不足(OOM)异常。为了克服这些情况下的困难,我将批处理脚本设置为一个定期重启服务器(比如每24、12或6小时重启一次)的脚本(参见第一个答案)。选择适合您的情况的时间间隔
假设OOM是根本原因,我建议下载Java JDK,配置ColdFusion以使用它(即jvm.config文件中的jvmhome),并传递参数以启用JMX连接,这是JDK附带的。从那里,您可以生成一个堆转储文件和/或告诉VM在OOM上生成一个堆转储文件。Tehn我在运行过程中取得了非常好的成功,它有一个可疑的泄漏报告,不止一次帮助跟踪服务器OOM崩溃的根本原因
如果这不是您的场景,那么我建议在使用ColdFusion enterprise时启用快照,否则cfstat是您在standard上的朋友。对于这两种情况,您也可以在服务器运行缓慢时进行调整。这可以帮助您连接到有问题的服务器,并在适当的时间生成转储,或者确定问题是否与负载相关 这个