WEB开发网
开发学院操作系统Linux/Unix IBM WebSphere Application Server诊断和调优(一... 阅读

IBM WebSphere Application Server诊断和调优(一)

 2010-09-27 08:17:57 来源:WEB开发网   
核心提示: 类解释器(Interpreter):解释装载进虚拟机的class对象,包括JIT等特性相关,IBM WebSphere Application Server诊断和调优(一)(4),第三类:平台相关接口(Platform Interface):主要为了跨操作系统平台重用JVM代码,不过,常见的有l

类解释器(Interpreter):解释装载进虚拟机的class对象,包括JIT等特性相关。

第三类:平台相关接口(Platform Interface):主要为了跨操作系统平台重用JVM代码,不过,它和我们开发人员关系不大。

在以上六个组件中,我们开发人员最关心的是ClassLoader和GC,用Java做系统框架、容器和它们密切相关。做业务系统时一些基础代码也和它们打交道,譬如最常用的Class.forName(),Thread.currentThread.getContextClassLoader()。我们仔细想想,为什么是上面两个问题?因为,它和我们class的整个生命周期最为相关:怎么将一个class和相关class加载进来,class实例什么时候创建,什么时候被销毁?

所以,下面的部分我们要专门讨论这些问题。

ClassLoader

JVM主要有三类ClassLoader:Bootstrap、Extention、Application,该三类ClassLoader从上到下是分级(hierarchy)结构,遵循代理模型(Delegation Model)。

Tip:大家可以看看sun.misc.Launcher的源码,Bootstrap和Extention就在该文件里。该src可以在sun的网站上下载该压缩包,约60M(jdk-1_5_0-src-scsl.zip),它不在jdk自带的那个src.zip里。

Bootstrap ClassLoader:也称为primordial(root) class loader。主要是负责装载jre/lib下的jar文件,当然,你也可以通过-Xbootclasspath参数定义。该ClassLoader不能被Java代码实例化,因为它是JVM本身的一部分。

Extention ClassLoader:该ClassLoader是Bootstrap classLoader的子class loader。它主要负责加载jre/lib/ext/下的所有jar文件。只要jar包放置这个位置,就会被虚拟机加载。一个常见的、类似的问题是,你将mysql的低版本驱动不小心放置在这儿,但你的Web应用程序的lib下有一个新的jdbc驱动,但怎么都报错,譬如不支持JDBC2.0的DataSource,这时你就要当心你的新jdbc可能并没有被加载。这就是ClassLoader的delegate现象。常见的有log4j、common-log、dbcp会出现问题,因为它们很容易被人塞到这个ext目录,或是Tomcat下的common/lib目录。

编缉推荐阅读以下文章

  • 设置并置 WebSphere Application Server 负载均衡器和内容主机
  • 利用 WebSphere Application Server 6.1 构建 SIP 集群应用环境及其性能调优
  • 如何实现WebSphere Application Server 6集群环境下的定时服务
  • WebSphere Application Server对SIP的支持
  • IBM WebSphere Application Server诊断和调优(二)
  • WebSphere Application Server Web 2.0 功能部件包入门

上一页  1 2 3 4 5 6  下一页

Tags:IBM WebSphere Application

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接