什么是IBM SDK, Java Technology Edition
IBM SDK, Java Technology Edition是IBM对Java标准的实现。如下图所展示的JDK,JRE,JVM和JIT之间的关系,Java实现“Write once, run anywhere”,是因为JVM处理了不同硬件平台的差异。IBM有自己独特的操作系统,AIX,Z/OS,因此有必要在此之上实现自己的JVM。另一方面,IBM的中间件WebSphere Application Server基于IBM自有的JDK,Oracle JDK的目标是即面向桌面应用也面向企业应用、甚至包括移动应用,IBM自有的JDK主要面向企业应用,针对企业应用的特性做了优化,也形成了自己独特的竞争优势。
如何生成javacore
javacore在诊断Java相关的问题时非常重要。根据IBM JDK的文档,有以下的方法可以选择生成Javacore:
1. JVM执行异常时,自动生成Javacore
1.1 发生了引起JVM停止运行的本地错误时,会自动产生Javacore文件
1.2 JVM内存不足时,会自动产生Javacore文件
2. 触发JVM生成JDK
2.1 (常用)从命令行中发出kill -3 <pid>指令,生成Javacore
2.2 在应用中调用com.ibm.jvm.Dump.JavaDump()方法,生成Javacore
2.3 使用WAS wsadmin utility命令生成Javacore, 以Jython语言为例:
jvm = AdminControl.completeObjectName('type=JVM,process=server1,*')
AdminControl.invoke(jvm, 'dumpThreads')