`
sbpya
  • 浏览: 604373 次
  • 性别: Icon_minigender_1
  • 来自: 杭州,长沙
社区版块
存档分类
最新评论

weblogic 9.2 虚拟内存设置

阅读更多
最近weblogic进程经常crash掉,碰到这种问题首先需要确定 WebLogic进程所使用的本地代码的所有潜在来源。要重点注意的位置有: 1) WebLogic Server 性能包。WebLogic Server 性能包是本地代码,如启用则可能会产生这类错误。禁用此功能以确定这是不是引起问题的原因。可以通过控制台或命令行来执行此操作。,使用控制台来查看“Server”选项卡,将 NativeIOEnabled 设置为 false。操作步骤为: a. 启动管理服务器(如果它还没有运行)。 b. 访问该域的管理控制台。 c. 展开左边窗格中的服务器节点,以显示域中配置的服务器。 d. 单击要配置的服务器实例的名称。 e. 选择“Configuration”->“Tuning”选项卡。 f. 如果未选中“Enable Native IO”复选框,请选中该复选框。 g. 单击“Apply”。 h. 重新启动服务器。 2)任何 2 类 JDBC 驱动程序都要利用本地 DBMS 库,这些库也会产生这类错误。切换到纯 java(4 类)JDBC 驱动程序,以确定这是不是出错原因。 3)用 JNI 调用访问的任何本地库也会引起这类错误。如果应用程序使用这些库,则必须仔细检查它们。可能很难排除这些库的问题,因为可能不太容易从应用程序中删除其功能。可能需要进行大量的记录,来确定某个使用模式是否能与核心转储/Dr Watson 错误相关联。 4)有时候,JVM 将产生一个小日志文件,其中可能包含说明内核来自哪一个库的有用信息,但有时也并非如此。该文件产生于启动 WebLogic Server 的目录中,且其形式为 hs_err_pid<pid>.log,其中 <pid> 是 WebLogic Server 进程的进程 ID。 如果上述方法仍然找不出问题的原因,可以尝试缩小导致 JVM 崩溃的问题代码的位置范围。 1)调试器/IDE JVM 可以在调试器(gdb、xdb、dbx 等)或 IDE(如 Visual Studio)中启动,以捕捉和处理严重错误。这种方法本身有缺陷,即不能在调试器/IDE 中重现崩溃现象,但如果能重新创建它,则可以从该工具中获得大量有用的信息。 2)跟踪 可以启用命令行标志 -Xverbose 来打开 JVM 中的附加跟踪功能。应用程序也可能有一些可启用的调试标志。 3)Thread Dump 根据 JVM 版本的不同,有可能在进程退出之前获得 Thread Dump。HotSpot 支持(未记载的)命令行选项 -XX:+ShowMessageBoxOnError;相应的 JRockit 选项为 -Djrockit.waitonerror。当 JVM 崩溃时,它可能会提示用户:“您想要调试此问题吗?” 这会暂停该进程,从而能够生成 Thread Dump(JVM 中的每个线程的一个堆栈跟踪)、连接调试器,或执行一些调试活动。但是,并非在所有情况下这都有效(例如,当堆栈溢出时)。 4)异地复制 如果能从可重现问题的应用程序提取独立的测试案例,则对快速推进探查过程可能有很大帮助,因为技术支持和工程部门都可以从依赖客户尝试各种建议和修补程序中解放出来。遗憾的是,这几乎总是不可能的,因为客户应用程序一般都会高度依赖于环境,并且与各种第三方应用程序高度关联。 5)调试编译 [工程特殊情况] 在极端情况下,如果确认很难收集有关该问题的信息,可能会说服 JVM 供应商的工程小组提供调试版编译程序,这会有助于查找问题。但是要注意,这只有在与供应商的支持部门联系之后才能实现。 如果上面方法还是找不出问题的解决方法,那么只能尝试做以下方法 1)升级 如果可能的话,升级到支持该应用程序的最新 JVM 版本。这不一定能解决问题,但在任何情况下,看看以这种途径能获得哪些免费赠品不失为一个好主意。但是,有些客户也许不能利用此选项,特别是如果应用程序是一个生产系统,必须谨慎控制和严格管理系统修改。 2)转换 JVM 如果其它供应商的 JVM 支持该应用程序,则转换 JVM 可能有助于避开问题。Sun 的 HotSpot 和 BEA 的 JRockit 在它们的几个关键组件如 JNI、内存管理等的实现上有差异。这些也是经常遇到问题的方面,因此转换 JVM 可能会有所帮助。 3)禁用 JIT,强迫解释 [特定于 HotSpot] 命令行选项 "-Djava.compiler=none -Xint" 强迫 HotSpot 关闭编译和解释所有字节码。如果问题是在“热点”中,这可能有所帮助。 4)禁用优化 [特定于 JRockit] 命令行选项 "-Xnoopt" 强迫 JRockit 关闭所有热点优化(在 JRockit 中无法禁用编译)。由于优化曾是过去出现问题的方面,这可能是一个有用的尝试方法。 5)转换到 4 类 JDBC 驱动程序 如果崩溃发生在 JDBC 中,那么从 2 类(本地代码)改变到 4 类(纯 Java)JDBC 驱动程序可能会有所帮助。</pid></pid>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics