有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java升级ColdFusion使用的JRE

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

我将最大JVM堆设置为1.2gig。经过一些实验,这似乎是我能分配的最大数量,而且ColdFusion启动正常。我意识到使用64位可能会解决这个问题,但目前这不是一个选项

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

短暂性脑缺血发作 堂


共 (4) 个答案

  1. # 1 楼答案

    您没有指定是使用独立服务器实例还是多服务器配置。如果你得到了大量的流量,并有一个双核机与大量的物理内存,我会考虑查看多服务器设置为CF8,并把一个集群与负载平衡。这将有助于在多个CF8实例之间分配流量,并且,假设您有一个强大的服务器,可以更好地利用可用的物理资源

    -瑞克

  2. # 2 楼答案

    这非常容易做到

    1)下载Java SE Development Kit并像平常一样安装

    2)打开jmv。在文本编辑器中为cf配置,位于c:\coldfusion8\runtime\bin

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

    例如,我的java。家和jvm。配置如下所示: java。home=C:/Program Files/Java/jdk1。6.0_11/jre

    4)重启CF服务

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

  3. # 3 楼答案

    考虑移动java 7。Java7有G1垃圾收集器,它更擅长内存释放。
    如果内存不足,可能是因为

  4. 函数没有使用varlocal作用域 在生产系统中使用
  5. 会话太大或未设置为在合理的时间内过期
  6. 查询太大SELECT *可能会导致这种情况。
  7. 查询过多。
  8. 该网站正在连接一个速度较慢的数据库。资源被保留,直到数据库返回数据
  9. DSN将数据缓冲区设置为64k以上