【问题标题】:Glassfish admin console slow loadingGlassfish 管理控制台加载缓慢
【发布时间】:2011-05-16 19:20:53
【问题描述】:

今天我停止/启动了我的 GlassfishV3 实例,现在我无法访问位于 http://servername:4848/ 的插件控制台。屏幕显示:“管理控制台正在加载...”这将永远持续下去。

我试过如下:

  • 我已尝试将以下条目添加到位于 /glassfishv3/glassfish/domains/domain1/configdomain.xml 中,如另一个 Stack Overflow Q&A 中的建议,但之后重启服务器还是不行。

    <java-options>-Dcom.sun.enterprise.tools.admingui.NO_NETWORK=true</java-options>

  • 我还在本地机器上安装了 glassfishv3,无法重现问题。我可以毫无问题地转到http://localhost:4848

  • 我还查看了位于 /glassfishv3/glassfish/domains/domain1/logs下的 server.logjvm.log 文件> 那里没有任何东西可以说明问题。

任何帮助将不胜感激

【问题讨论】:

    标签: glassfish-3


    【解决方案1】:

    我有类似的症状,我也尝试了达里奥建议的一些方法,但没有奏效。可能是因为我的开发环境有一个独特的配置:我在 Windows 7 64 位主机上的 VirtualBox Ubuntu 11.04 64 位客户机上运行 Glassfish 3.1。很偶然,我发现了一个额外的症状:如果我关闭了 Ubuntu 客户机上的网络,控制台将在 localhost 浏览器实例上成功加载。也就是说,在网络关闭的 Ubuntu 客户机上,我可以成功导航到 http://localhost:4848 并按预期显示 Glassfish 管理控制台。但是,如果 Ubuntu 来宾的网络处于打开状态,我的行为与原始海报所建议的完全相同:http://localhost:4848 将永远坐在初始加载页面上。

    长话短说,我发现将以下参数添加到 server-config 的 JVM 选项可以解决问题: -Djava.net.preferIPv4Stack=true

    当我进行更改并重新启动 Glassfish 服务器时,一切正常。

    (请注意,我还设置了上面推荐的一些其他设置,即 NO_NETWORK=true,并且我调整了 JVM 内存占用并将其设置为 -server 而不是 -client。可能是这些设置也是必需的,尽管在我的情况下它们本身还不够。)

    【讨论】:

    • 非常感谢您为这项事业做出的贡献!
    【解决方案2】:

    我遇到了同样的问题。我可以在运行模式下部署,但它会在调试模式下永远挂起。 IntelliJ 挂在 断点 上。我将断点静音,glassfish3 像新的一样工作得很好。我不必更改任何 domain.xml 设置。 检查你的断点!

    【讨论】:

    • 这里有同样的问题。刚刚删除了所有的eclipse断点,它工作正常。
    【解决方案3】:

    我找到了解决问题的方法。将 java-option 设置为 NO_NETWORK 为 true 不起作用,所以我从 3.0.1 升级到 3.1 并修复了它。不过不是马上,我不得不停止/启动 Glassfish 服务器几次,然后才进入管理控制台,没有任何很长的延迟。

    解决方案

    解决方案是使用 pkg 实用程序从命令行升级。

    您可以在此链接中找到步骤: http://download.oracle.com/docs/cd/E18930_01/html/821-2437/gkthu.html#gktjf

    或者如下:

    1. 转到 as-install-parent/bin
    2. ./pkg 镜像更新
    3. as-install-parent/glassfish/bin/asadmin start-domain --upgrade domain-name
    4. as-install-parent/glassfish/bin/asadmin start-domain 域名

    更新 我又遇到了性能问题,我在 Joshi 的技术博客中找到了另一个解决方案: http://joshitech.blogspot.com/2009/09/glassfish-application-server.html

    基本上在 domain.xml 中添加以下 jvm 选项。它应该会提高 Glassfish 的启动和部署性能:

    <jvm-options>-server</jvm-options>
    <jvm-options>-Xms3000m</jvm-options>
    <jvm-options>-Xmx3000m</jvm-options>
    <jvm-options>-XX:MaxPermSize=192m</jvm-options> 
    <jvm-options>-XX:NewRatio=2</jvm-options> 
    <jvm-options>-XX:+AggressiveHeap</jvm-options>
    <jvm-options>-XX:+AggressiveOpts</jvm-options>
    <jvm-options>-XX:+UseParallelGC</jvm-options>
    <jvm-options>-XX:+UseParallelOldGC</jvm-options>
    <jvm-options>-XX:ParallelGCThreads=5</jvm-options>
    

    【讨论】:

      【解决方案4】:

      我不知道您是否引用了this answer,但描述了第二步(禁用更新模块)。

      还有两个想法:

      1. 检查NO_NETWORK=true 选项是否真的有效(GF 管理控制台中应该没有广告)

      2. 在启动期间观察 server.log (glassfish-install-dir/glassfis/domains/domain1/logs) 并查找延迟发生之前的最后一个日志条目。这可能暗示了延迟的来源。

      【讨论】:

      • 感谢马特的回复。你建议的是我做过的,也没有工作。我找到了一个解决方案,基本上是从3.0.1升级到3.1。见下文
      【解决方案5】:

      请注意不要盲目效仿达里奥的例子,除非您拥有比大多数人更多的 RAM。

      -Xms3000m 为 Glassfish 提供 3gb。你有那么多空闲内存吗?

      我在我的 4gb Mac 上尝试了这个,1gb 的 Glassfish。根本没有明显区别...性能仍然很好。

      【讨论】:

      • 嗨 Bradjcox,这更适合企业设置、QA 或生产服务器。如果您想在本地机器上进行 Web 开发,除非您需要成熟的应用服务器的功能,否则我会推荐 Tomcat。此外,我报告的问题在我的本地环境中没有,它不如企业环境强大,但在真正重要的地方,在工作中:)
      • 是的,可以试试。本周末看起来很有希望的另一个选择是坚持使用 GF,但避免使用它的高端功能(特别是 SOA/JAX-WS),只使用 servlet 和 JAX-B。对最新的 Sun/Oracle/Java6+“功能”失去了耐心。
      猜你喜欢
      • 2013-02-03
      • 2013-05-01
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多