在过去的几年中

递归太深了;堆栈溢出。

所谓的任务内部的代码可能会有所不同,但是在这种情况下,它是非常简单的代码,除了重置数据库中的计数器,然后给我发送电子邮件以告诉我它成功了。但是我已经看到各种代码发生了,所以我 很确定 导致此问题的不是代码。

它甚至具有一个空的应用程序。cfm/cfc可以阻止被调用的任何其他代码。

我们唯一一次看到这一点是当我们重新启动CF时,我们正在尝试在服务完全启动之前查看页面。

错误很少发生,但是现在我们有一些相当关键的计划任务,如果它们不运行,则会引起问题。 (因此我要在这里发布帮助)

内存使用量很好。在报告超过80%的免费内存之前,它运行的任务。整夜监视记忆不会显示出任何异常的尖峰。该机器有4次记忆,除了操作系统和CF外,其他任何事情都没有运行。最近,我们试图重新安装CF来解决该问题,但这无济于事。它也发生在我们的其他几个服务器上。

这是一台内部服务器,因此不存在的情况不存在。当时没有其他计划的任务。

我们一直在CF7,CF8和CF9盒(完全修补)上看到了这一点。

当前有问题的盒子信息:

  • CF版本:9,0,1,274733
  • 版本:企业
  • OS:Windows 2003服务器
  • Java版本:1.6.0_17
  • 最小JVM堆:1024
  • Max JVM堆:1024
  • 最低浓度尺寸:64m
  • 最大浓度大小:384m
  • 服务器内存:4GB
  • Quad Core机器很少看到超过5%的CPU使用

JVM设置:

-server -dsun.io.usecanoncaches = false -xx:permsize = 64m -xx:maxpermsize = 384m -xx:+useparallelgalgc -xx:+aggripingsheap -dcoldfusion.rootdir = rootdir = {application.home} = {application.home} /../ lib -doracle.jdbc.v8compatible = true

这是昨晚未能运行的令人难以置信的复杂代码,但已经运行了多年,很可能明天运行:

<cfquery datasource="common_app">
    update  import_counters
    set current_count = 0
</cfquery>

<cfmail subject="Counters reset" to="my@email.com" from="my@email.com"></cfmail>

如果我错过了任何东西,请告诉我。 谢谢!

有帮助吗?

解决方案

在将服务器升级到ColdFusion 9之后,我们已经有一段时间了。修复程序似乎是在Jrun 4上的Adobe中使用的。 http://kb2.adobe.com/cps/950/950218dc.html

您可能需要对技术中指出的权限进行一些调整。

其他提示

您是否尝试过将堆的大小从1024减少到800件事。您说剩余的内存剩余超过80%,因此,如果可能的话,我会考虑减少最大值。

是32或64位OS吗?分配堆空间时,您必须考虑JVM的所有开销(堆栈,库等),以便您不必超过该过程的OS限制。

您可以尝试将最小JVM堆大小设置为与CF管理员中的最大JVM堆大小(MB)相同。

还将JVM更新为最新(21)或至少20个。

过去,每当古怪的事情开始发生时,我一直都会升级JVM,因为通常可以解决这个问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top