管理共享库

共享库是多个应用程序使用的文件。 每个共享库都由符号名称, Java™ 类路径和用于装入 Java 本机接口 (JNI) 库的本机路径组成。 可使用共享库来减少系统上重复库文件的数目。

准备工作

应用程序使用相同的库文件。 已将应用程序部署到服务器,或者您正在部署应用程序。

有关此任务

假设您有四个应用程序使用同一个库文件 my_sample.jar。 在部署这四个应用程序之后,不必在系统上放四份 my_sample.jar,您可以为 my_sample.jar 定义一个共享库,然后让这四个已部署的应用程序使用该 my_sample.jar 库文件。
避免麻烦: 如果要将新的 JAR 添加到为系统定义的共享库,请始终记住重新启动 Java 虚拟机 (JVM) ,以便系统知道为新 JAR 添加的此共享库。

隔离式共享库提供了另一种方法来减少库文件数目。 每个隔离式共享库都有他们自己的类装入器,因此能够在应用程序之前共享类的单个实例。 每个应用程序都可以指定它要引用的隔离式共享库。 不同的应用程序可以引用隔离式共享库的不同版本,从而导致一组应用程序共享一个隔离式共享库。 借助隔离式共享库,一些应用程序可以共享库 A 的单一副本(版本 1),而其他应用程序则共享库 A 的另一个单一副本(版本 2),因此内存中共有两个实例。

通过使用管理控制台,可以为由多个应用程序使用的库文件定义共享库,然后使这些库与特定应用程序或模块相关联或者与应用程序服务器相关联。 与关联共享库相关的准则如下所示:

  • 如果使共享库文件与应用程序或模块相关联,那么将在局部类装入器中装入该共享库所表示的类(这个类装入器可以是应用程序范围的类装入器或模块范围的类装入器)。
  • 如果使隔离式共享库文件与应用程序或模块相关联,那么将在为该共享库创建的独立类装入器中装入该共享库所表示的类。
  • 如果使共享库文件与服务器相关联,那么将在服务器范围的类装入器中装入该共享库所表示的类。 此类装入器是应用程序类装入器的父代, WebSphere® Application Server 扩展类装入器是其父代。 使共享库文件与服务器相关联将使其与该服务器上的所有应用程序相关联。

除了使用管理控制台来使共享库与应用程序相关联以外,还可以使用已安装的可选软件包。 在这种情况下,通过在应用程序的 MANIFEST.MF 文件中声明所依赖的库 .jar 文件使共享库与应用程序相关联。 请参阅 Java 2 Platform, Enterprise Edition (J2EE) 1.4 规范的第 8.2 节以获取示例。

过程

  • 使用管理控制台来定义共享库。
    1. 创建共享库

      在单服务器产品上,可以在单元、节点或服务器级别定义共享库。

      在这些级别中的某个级别定义库并不会自动地将该库装入类装入器。 必须使该库与应用程序、模块或服务器相关联,这样产品才会将该共享库所表示的类装入到局部类装入器或服务器范围类装入器中。

    2. 使每个共享库与应用程序、模块或服务器相关联。
      • 将共享库与使用共享库文件的 应用程序或模块 相关联。

        如果您创建此共享库时启用了对此共享库使用隔离式类装入器设置,请使此隔离式共享库与应用程序或模块相关联,以便使用独立的类装入器来装入此共享库。

      • 使共享库与应用程序 服务器 相关联,以便服务器上的每个应用程序都可以使用共享库文件。
  • 使用已安装的可选软件包 来声明应用程序的共享库。
  • 移除共享库。
    1. 单击控制台导航树中的 环境 > 共享库 以访问 共享库页面
    2. 选择要移除的库。
    3. 单击 删除

    刷新共享库列表。 在列表中将不再显示库文件。