WebLogic,选择JDK

时间:2014-01-13 11:02:16

标签: java java-ee weblogic

关于Java EE应用程序和WebLogic;我注意到我可以在不同的地方更改Java VM(Sun JDK或JRockit):

  1. 在创建WebLogic域期间
  2. 项目类路径
  3. 在创建WebLogic Server运行时环境期间
  4. 其他?
  5. 如果我改变其中一个不同的设置,你能解释一下会发生什么吗?

2 个答案:

答案 0 :(得分:3)

唯一真正的区别是JRockit专门针对Weblogic进行了调整,因此您可以看到性能改进。选择一个或另一个时,内存设置也会改变。

有两种简单的方法可以保证服务器在启动时使用的JVM:

  • 您可以在受管服务器的“服务器启动”选项卡上显式设置JVM。这仅适用于通过nodemanager启动服务器的情况。
  • 在setDomainEnv.sh文件中设置BEA_JAVA_HOME和SUN_JAVA_HOME。我们将它们设置为相同的值,因为我们总是需要特定的JVM

就像你说的那样,还有其他地方可以设置价值,但我认为以上两种选择是最简单的方法。

答案 1 :(得分:0)

我真的只能想到两个主要用例。独立客户端应用程序,关注启动时间而不是长期运行时的GC,以及服务器使用情况,它并不关心启动时间,但GC和长期稳定性能是至关重要的。一些应用程序可能比其他应用程序创建(类)实例运行时更多,因此也可能产生影响。

关于差异:

  1. JRockit实际上没有PermGen,但使用常规堆。由于某些软件存在PermGen无法收集的问题,因此JRockit在这些问题上表现得更好。 Oracle / Sun VM拥有Eden空间,幸存空间,终身代和永久代,而JRockit只有年轻一代和老一代。
  2. 垃圾收集策略有些不同。取决于最适合特定情况的软件。
  3. 调试标志不同,有些调试软件需要一定的JDK。 JRockit有JRockit mission control,它是监视JVM当前状态的高级工具。某些版本为free to download,对于最新的补丁,您需要Oracle支持合同。使用Oracle VM,您可以使用所有标准工具:visualvm,jhat,jmap,jprof,MAT,jstat。这是一个你喜欢的味道和用例问题。
  4. 如果手动更改它,您可能会看到有关不支持的调试标志的错误。一旦你改变了这些,你就可以在早期的Oracle VM上遇到PermGen错误:除此之外,我希望你只看到GC配置文件和/或性能测试的差异。

    从长远来看,你可能想看看this thread所说的内容。 JRockit和Oracle JVM将成为同一个。