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

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

 2010-09-27 08:17:57 来源:WEB开发网   
核心提示: Application ClassLoader:也称为System ClassLoaer,它负责加载CLASSPATH环境变量下的classes,IBM WebSphere Application Server诊断和调优(一)(5),缺省情况下,它是用户创建的任何ClassLoader的父Cla

Application ClassLoader:也称为System ClassLoaer。它负责加载CLASSPATH环境变量下的classes。缺省情况下,它是用户创建的任何ClassLoader的父ClassLoader,我们创建的standalone应用的main class缺省情况下也是由它加载(通过Thread.currentThread().getContextClassLoader()查看)。

我们实际开发中,用ClassLoader更多时候是用其加载classpath下的资源,特别是配置文件,如ClassLoader.getResource(),比FileInputStream直接。

ClassLoader是一种分级(hierarchy)的代理(delegation)模型。

Delegation:其实是Parent Delegation,当需要加载一个class时,当前线程的ClassLoader首先会将请求代理到其父classLoader,递归向上,如果该class已经被父classLoader加载,那么直接拿来用,譬如典型的ArrayList,它最终由Bootstrap ClassLoader加载。并且,每个ClassLoader只有一个父ClassLoader。

Class查找的位置和顺序依次是:Cache、parent、self。

Hierarchy:上面的delegation已经暗示了一种分级结构,同时它也说明:一个ClassLoader只能看到被它自己加载的classes,或是看到其父(parent) ClassLoader或祖先(ancestor) ClassLoader加载的Classes。

在一个单虚拟机环境下,标识一个类有两个因素:class的全路径名、该类的ClassLoader。

我碰到的一个典型的例子是:在做WAS的SSO开发时,由于我们的类是由WAS在启动时加载,该ClassLoader比下面的部署的Applicaton的ClassLoader的级别高。所以,在我们自己的类中没法用到应用程序的连接池,必须自建。

代理模型是Java安全模型的保证。譬如,我们自己写一个String.java,并且编译、package到自己的java.lang包下。按照代理模型,当前线程的ClassLoader会将其代理到父ClassLoader,父ClassLoader(最终会是Bootstrap)会找到rt.jar下的String.class,也就是说我们的String.class不会捣乱。

编缉推荐阅读以下文章

  • 设置并置 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

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