Sun公司发布了Java SE 6的最终版本,在新版本中的特性中增加了许多新的特性,其中管理和监视就是其中的一个新特性,最近,Mandy Chung领导了java.lang.management API的设计和实现,在Java SE 6中有许多与监视和管理相关的可靠特性,最近,她列举了14个特性,这14个特性使Java SE 6成为到目前为止的Java版本中最易于管理的版本.
在列举Java SE 6的新特性时,开发者可能认为管理和监视特性并不是第一个新特性,在最新的Java版本中包括与监视和调试相关的工具,这些工具直接的影响到开发者的生产效率,同时也使得观察应用程序的行为更加容易.
对现存的管理和监视API的各种提高包括:
动态附加性能:动态附加性能可以附加一个监视工具到已经运行的JVM中,可以方便的诊断运行中的Web服务器上的问题,例如,不用关闭服务器而处理问题.
Heap Dump and Analysis:一旦你连接一个运行中的JVM的监视接口,你能需要聚集足够的信息来解决你一直想要解决问题,许多问题是与内存相关的,Java SE 6使得对内存的分析更加容易,你可以使用jmap工具获得堆栈信息,然后使用jhat工具来分析堆栈.
OutOfMemoryError Diagnosability:JVM运行时的内存益处是很难诊断的,因为当错误发生时,应用程序的行为是不规律的.
JDK 6对内存益出错误的诊断提供了更好的支持,这种错误包括内存分配失败的一个堆栈追踪,另一个提高就是XX:+HeapDumpOnOutOfMemoryError错误选项,该选项能够通知HotSpot VM在当从Java堆栈或者持久化产生的分配不能被满足时, 产生一个堆栈.另外,一个新的-XX:OnOutOfMemoryError=选项也被增加进来,你可以指定一个命令,该命令在OutOfMemoryError异常抛出时,HotSpot VM将会调用.
DTrace on Solaris: DTrace on Solaris是一个Solaris工具,它可以进行应用程序的动态追踪,Java SE 6与Solaris' DTrace工具进行了集成,使开发者能够追踪应用程序执行时的堆栈.
Jconsole: jconsole是一个在JDK 5中就存在的GUI工具,现在附加在已经运行的JVM上,jhat是一个堆栈分析工具.
jmap:它是一个小的能从JVM中得到堆栈柱状图和堆栈快照的工具.
Jstack:jstack能够打印Java堆栈追踪和检测所有平台上的死锁,你可以使用jstack –l来打印java.util.concurrent锁的列表.
Jinfo:jinfo对Java过程,核心文件或者远程调试服务器产生Java配置选项,该工具通过使用-flag选项来得到和设置JVM选项.
Java Management Extensions (JMX):
在JDK 6中JMX API最重要的特性是MXBeans和Descriptors, MXBeans使得在一个MXBean中相关值的绑定并不要求特定的客户端配置来处理该绑定. Descriptors提供了一种方便的方式来附加额外的元数据到MXBeans中.
java.lang.management:
java.lang.management API已经增强了对监视器和java.util.concurrent锁的监视,它也提供了一个新的方法来获取系统加载平均数.另外,一个新的HotSpotDiagnosticMXBean API提供了程序接口来获取堆和设置VM选项.
java.lang.instrument:
java.lang.instrument API也增强了对加载类,多个代理和设置类加载查询的动态转换的支持.
JVM Tool Interface:
JVM TI已经增强对多个代理的支持,和更好的动态使用仪器,资源耗尽通知,支持更早的返回和监视堆栈深度.
Java Platform Debugger Architecture (JPDA) :
JPDA已经增强了堆功能.在没有使用-g参数来编译,处理附加连接器,监视堆栈深度和在监视器锁定/释放断点的时候,可以更早的返回,观察方法参数.
在列举Java SE 6的新特性时,开发者可能认为管理和监视特性并不是第一个新特性,在最新的Java版本中包括与监视和调试相关的工具,这些工具直接的影响到开发者的生产效率,同时也使得观察应用程序的行为更加容易.
对现存的管理和监视API的各种提高包括:
动态附加性能:动态附加性能可以附加一个监视工具到已经运行的JVM中,可以方便的诊断运行中的Web服务器上的问题,例如,不用关闭服务器而处理问题.
Heap Dump and Analysis:一旦你连接一个运行中的JVM的监视接口,你能需要聚集足够的信息来解决你一直想要解决问题,许多问题是与内存相关的,Java SE 6使得对内存的分析更加容易,你可以使用jmap工具获得堆栈信息,然后使用jhat工具来分析堆栈.
OutOfMemoryError Diagnosability:JVM运行时的内存益处是很难诊断的,因为当错误发生时,应用程序的行为是不规律的.
JDK 6对内存益出错误的诊断提供了更好的支持,这种错误包括内存分配失败的一个堆栈追踪,另一个提高就是XX:+HeapDumpOnOutOfMemoryError错误选项,该选项能够通知HotSpot VM在当从Java堆栈或者持久化产生的分配不能被满足时, 产生一个堆栈.另外,一个新的-XX:OnOutOfMemoryError=选项也被增加进来,你可以指定一个命令,该命令在OutOfMemoryError异常抛出时,HotSpot VM将会调用.
DTrace on Solaris: DTrace on Solaris是一个Solaris工具,它可以进行应用程序的动态追踪,Java SE 6与Solaris' DTrace工具进行了集成,使开发者能够追踪应用程序执行时的堆栈.
Jconsole: jconsole是一个在JDK 5中就存在的GUI工具,现在附加在已经运行的JVM上,jhat是一个堆栈分析工具.
jmap:它是一个小的能从JVM中得到堆栈柱状图和堆栈快照的工具.
Jstack:jstack能够打印Java堆栈追踪和检测所有平台上的死锁,你可以使用jstack –l来打印java.util.concurrent锁的列表.
Jinfo:jinfo对Java过程,核心文件或者远程调试服务器产生Java配置选项,该工具通过使用-flag选项来得到和设置JVM选项.
Java Management Extensions (JMX):
在JDK 6中JMX API最重要的特性是MXBeans和Descriptors, MXBeans使得在一个MXBean中相关值的绑定并不要求特定的客户端配置来处理该绑定. Descriptors提供了一种方便的方式来附加额外的元数据到MXBeans中.
java.lang.management:
java.lang.management API已经增强了对监视器和java.util.concurrent锁的监视,它也提供了一个新的方法来获取系统加载平均数.另外,一个新的HotSpotDiagnosticMXBean API提供了程序接口来获取堆和设置VM选项.
java.lang.instrument:
java.lang.instrument API也增强了对加载类,多个代理和设置类加载查询的动态转换的支持.
JVM Tool Interface:
JVM TI已经增强对多个代理的支持,和更好的动态使用仪器,资源耗尽通知,支持更早的返回和监视堆栈深度.
Java Platform Debugger Architecture (JPDA) :
JPDA已经增强了堆功能.在没有使用-g参数来编译,处理附加连接器,监视堆栈深度和在监视器锁定/释放断点的时候,可以更早的返回,观察方法参数.