JVM 中的类和类路径

在 CICS 下运行的 JVM 可以使用不同类型的类或库文件:原始类(系统和标准扩展类)、本地 C® DLL 库文件和应用程序类。

JVM 识别其中每个组件的用途,确定如何装入这些组件,并确定将它们存储在何处。 JVM 的类路径由 JVM 概要文件中的选项定义,并且 (可选) 在 JVM 属性文件中引用。

  • Primordial classes 是在 JVM 中提供基本服务的 z/OS JVM 代码。 原始类可分类为系统类和标准扩展类。
  • 本地 C 动态链接库 (DLL) 文件的扩展名是 .so ,网址是 z/OS UNIX。 某些库是 JVM 运行所必需的,其他本机库可由应用程序代码或服务装入。 例如,其他本机库可能包含 DLL 文件以使用 Db2® JDBC 驱动程序。
  • 应用程序类 是在 JVM 中运行的应用程序的类,包括属于用户编写的应用程序的类。 Java™ 应用程序类还包含由 IBM 或其他供应商提供的应用程序类,以提供访问资源 (例如 JCICS 接口类, JDBC 和 JNDI) 的服务,这些资源未包括在 CICS的标准 JVM 设置中。 将 Java 应用程序类装入到类高速缓存时,会保留这些类,并且可以由在同一 JVM 中运行的其他应用程序复用。
可以指定类或本机库的类路径是库路径和标准类路径。
  • 库路径 指定 JVM 使用的本机 C 动态链接库 (DLL) 文件,包括运行 JVM 所需的文件以及由应用程序代码或服务装入的其他本机库。 仅装入每个 DLL 文件的一个副本,并且所有 JVM 共享该文件,但每个 JVM 都有自己的 DLL 静态数据区副本。

    JVM 的基本库路径是使用 USSHOME 系统初始化参数和 JVM 概要文件中的 JAVA_HOME 选项指定的目录自动构建的。 基本库路径在 JVM 概要文件中不可见。 它包含运行 JVM 所需的所有 DLL 文件以及 CICS使用的本机库。 您可以使用 LIBPATH_SUFFIX 选项或 LIBPATH_PREFIX 选项来扩展库路径。 LIBPATH_SUFFIX 将项添加到库路径末尾的 IBM提供的库之后。 LIBPATH_PREFIX 将项添加到开头,如果这些项具有相同的名称,那么将装入这些项以代替 IBM提供的库。 您可能必须执行此操作以确定问题。

    使用 LP64 选项编译和链接库路径上包含的任何 DLL 文件。 基本库路径上提供的 DLL 文件以及服务 (例如 Db2 JDBC 驱动程序) 所使用的 DLL 文件是使用 LP64 选项构建的。

  • 标准类路径 不得用于支持 OSGi 的 JVM 服务器,因为 OSGi 框架根据包含应用程序的 OSGi 捆绑软件中的信息自动确定应用程序的类路径。 保留标准类路径以供未针对 OSGi 配置的 JVM 服务器 (例如 CICS中的 Axis2 环境) 使用。 对于使用标准类路径的异常场景 (例如 Axis2) ,可以在类路径条目上使用通配符后缀来指定特定目录中的所有 JAR 文件。

    CICS 还会使用 USSHOME 系统初始化参数指定的目录的 /lib 子目录为 JVM 自动构建基类路径。 此类路径包含 CICS 和 JVM 提供的 JAR 文件。 它在 JVM 概要文件中不可见。

您不必在类路径上包含系统类和标准扩展类 (原始类) ,因为它们已包含在 JVM 中的引导类路径上。