升级ColdFusion使用的JRE

时间:2009-04-28 15:14:21

标签: coldfusion java

我有一个ColdFusion 8.1应用程序。它被大量使用,我看到jrun.exe在任务管理器中获得了非常高的内存使用率。这是一个32位的Windows 2003服务器。当Jrun绕过一堆内存使用时,ColdFusion会在某些时候停止响应。日志有点模糊,但我开始在ColdFusion日志中看到垃圾收集和堆错误。我假设JRE内存不足。

我将最大JVM堆设置为1.2gig。经过一些实验,这似乎是我可以分配的最大量,并且仍然可以使用ColdFusion。我意识到转到64位可能会解决问题,但目前这不是一个选择。

我正在考虑升级JRE(它是在2008年之前的v6.x,虽然我不知道确切的版本。我正在使用ColdFusion 8.1附带的JRE。有没有人经历过这个?我假设这只是安装新JRE并将ColdFusion指向ColdFusion服务器设置中的新JRE目录的问题。

TIA 别

4 个答案:

答案 0 :(得分:7)

非常很容易做到。

1)下载Java SE Development Kit并按正常方式安装。

2)在文本编辑器中打开 jmv.config for cf,该编辑器位于 c:\ coldfusion8 \ runtime \ bin

3)注释掉现有的 java.home 行,在行的开头加一个“#”添加一个新的 java.home 下面的一行指向你的jvm安装。

举个例子,我的java.home和jvm.config看起来像这样: java.home = C:/ Program Files / Java / jdk1.6.0_11 / jre

4)重启CF服务。

作为奖励,你可以运行JavaRa并通过删除所有旧版本的JRE来释放一些空间。

答案 1 :(得分:2)

Adob​​e拥有涵盖此类问题的知识库。请查看http://www.adobe.com/go/2d547983以获取相关说明。

Sean Corfield有一篇文章提供了有关在ColdFusion 8中使用Java 6的一些信息: http://corfield.org/blog/index.cfm/do/blog.entry/entry/Java_6_and_ColdFusion_8

只要安装1.6.0_10或更高版本,就可以了。您可能会不时查看ColdFusionBloggers.org,以防将来发现其他JVM问题。

答案 2 :(得分:0)

您未指定是否使用独立服务器实例或多服务器配置。如果您获得大量流量并且拥有具有大量物理内存的双核计算机,我会考虑研究CF8的多服务器设置并将具有负载平衡的集群组合在一起。这将有助于在多个CF8实例之间分配流量,并假设您拥有一台强大的服务器,可以更好地利用您可用的物理资源。

-Rick

答案 3 :(得分:0)

考虑移动Java 7. Java 7具有G1垃圾收集器,它在内存释放方面更好。
如果您遇到内存不足问题,可能是因为

  • 函数未使用varlocal范围
  • <cfdump>用于生产系统
  • 会话太大或未设定在合理的时间内到期
  • 查询太大SELECT *会导致这种情况。
  • 查询的查询次数过多。
  • 该网站正在连接慢速数据库。资源一直保持到DB返回数据
  • DSN的数据缓冲区设置超过64k