设置 IBM MQ classes for JMS/Jakarta Messaging 的环境变量

在编译和运行 IBM® MQ classes for JMSIBM MQ classes for Jakarta Messaging 应用程序之前, CLASSPATH 环境变量的设置必须包含 IBM MQ classes for JMSIBM MQ classes for Jakarta Messaging Java 归档 (JAR) 文件。 根据需求,您可能需要向类路径中添加其他 JAR 文件。 要运行 IBM MQ classes for JMSIBM MQ classes for Jakarta Messaging随附的脚本,必须设置其他环境变量。

开始之前

[MQ 9.3.0 2022 年 6 月][MQ 9.3.0 2022 年 6 月][Jakarta Messaging 3.0 ]IBM MQ 9.3.0开始, Jakarta Messaging 3.0 支持用于开发新应用程序。 IBM MQ 9.3.0 继续支持现有应用程序的 JMS 2.0 。 不支持在同一应用程序中同时使用 Jakarta Messaging 3.0 API 和 JMS 2.0 API。 有关更多信息,请参阅 使用 IBM MQ classes for JMS/Jakarta Messaging

重要信息: 不支持将 Java 选项 -Xbootclasspath 设置为包含 IBM MQ classes for JMSIBM MQ classes for Jakarta Messaging

关于本任务

要编译和运行 IBM MQ classes for JMSIBM MQ classes for Jakarta Messaging 应用程序,请使用针对平台和 Java 消息传递版本的 CLASSPATH 设置,如下表中所示。 或者,可以在 java 命令中指定类路径,而不是使用环境变量。

[JMS 2.0 ]对于 IBM MQ classes for JMS,此设置包含样本目录,以便您可以编译和运行 IBM MQ classes for JMS 样本应用程序。

[Jakarta Messaging 3.0 ]对于 IBM MQ classes for Jakarta Messaging,正在准备新的样本。

[Jakarta Messaging 3.0 ]
表 1. CLASSPATH Jakarta Messaging 3.0 用于编译和运行 IBM MQ classes for Jakarta Messaging 应用程序的设置
平台 CLASSPATH 设置
[AIX]AIX®
CLASSPATH= MQ_INSTALLATION_PATH/java/lib/com.ibm.mq.jakarta.client.jar:

[Linux]Linux®

CLASSPATH= MQ_INSTALLATION_PATH/java/lib/com.ibm.mq.jakarta.client.jar:
[IBM i]IBM i
CLASSPATH=/QIBM/ProdData/mqm/java/lib/com.ibm.mq.jakarta.client.jar:
[Windows]Windows
CLASSPATH= MQ_INSTALLATION_PATH\java\lib\com.ibm.mq.jakarta.client.jar;
[z/OS]z/OS®
CLASSPATH= MQ_INSTALLATION_PATH/java/lib/com.ibm.mq.jakarta.client.jar;
[JMS 2.0 ]
表 2. CLASSPATH 用于 JMS 2.0 编译和运行 IBM MQ classes for JMS 应用程序 (包括样本应用程序) 的设置
平台 CLASSPATH 设置
[AIX]AIX
CLASSPATH= MQ_INSTALLATION_PATH/java/lib/com.ibm.mq.allclient.jar:
MQ_INSTALLATION_PATH /samp/jms/samples:

[Linux]Linux

CLASSPATH= MQ_INSTALLATION_PATH/java/lib/com.ibm.mq.allclient.jar:
MQ_INSTALLATION_PATH /samp/jms/samples:
[IBM i]IBM i
CLASSPATH=/QIBM/ProdData/mqm/java/lib/com.ibm.mq.allclient.jar:
/QIBM/ProdData/mqm/java/samples/jms/samples:
[Windows]Windows
CLASSPATH= MQ_INSTALLATION_PATH\java\lib\com.ibm.mq.allclient.jar;
MQ_INSTALLATION_PATH\tools\jms\samples;
[z/OS]z/OS
CLASSPATH= MQ_INSTALLATION_PATH/java/lib/com.ibm.mq.allclient.jar:
MQ_INSTALLATION_PATH /java/samples/jms/samples:

在这些表中, MQ_INSTALLATION_PATH 表示安装了 IBM MQ 的高级目录。

JAR 文件 com.ibm.mq.jakarta.client.jarcom.ibm.mq.allclient.jar 的清单包含对 IBM MQ classes for JMS 应用程序所需的大多数其他 JAR 文件的引用,因此您不需要将这些 JAR 文件添加到类路径中。 这些 JAR 文件包括使用 Java Naming Directory Interface (JNDI) 从目录服务检索受管对象的应用程序以及使用 Java 事务 API (JTA) 的应用程序所需的 JAR 文件。

但是,以下情况下必须在类路径中包含其他 JAR 文件:
  • 如果要使用实现了 com.ibm.mq 包中定义的通道出口接口(而不是 com.ibm.mq.exits 包中定义的通道出口接口)的通道出口类,那么必须将 IBM MQ classes for Java JAR 文件 com.ibm.mq.jar 添加到类路径中。
  • 如果应用程序使用 JNDI 从目录服务检索受管对象,那么还必须向类路径中添加以下 JAR 文件:
    • fscontext.jar
    • providerutil.jar
  • 如果应用程序使用 JTA,那么还必须将 jta.jar 添加到类路径中。
注: 这些额外的 JAR 文件仅需要用于编译应用程序,而不需要用于运行这些应用程序。
IBM MQ classes for JMSIBM MQ classes for Jakarta Messaging 随附的脚本使用以下环境变量:
MQ_JAVA_DATA_PATH
此环境变量指定日志和跟踪输出的目录。
MQ_JAVA_INSTALL_PATH
此环境变量指定 IBM MQ classes for JMS 的安装目录。
MQ_JAVA_LIB_PATH
此环境变量指定存储 IBM MQ classes for JMS 库的目录,如先前的表中所示。

过程

  • [Windows] Windows上,安装 IBM MQ后,运行命令 setmqenv
    如果不首先运行此命令,那么发出 dspmqver 命令时可能会出现以下错误消息:
    AMQ8351: IBM MQ Java environment has not been configured 
    correctly, or the IBM MQ JRE feature has not been installed.
    
    注: 如果未安装 IBM MQ Java runtime environment (JRE) ,那么需要此消息 (请参阅 其他 Windows 功能部件先决条件检查)。
  • [AIX][Linux] AIX and Linux 系统上,自行设置环境变量:
    [JMS 2.0 ]对于 JMS 2.0,请使用下列其中一个脚本来设置环境变量:
    • 如果使用的是 32 位 JVM ,请使用脚本 setjmsenv
    • 如果要在 AIXLinux 系统上使用 64 位 JVM ,请使用脚本 setjmsenv64
    [Jakarta Messaging 3.0 ]对于 Jakarta Messaging 3.0,请使用下列其中一个脚本来设置环境变量:
    • 如果使用的是 32 位 JVM ,请使用脚本 setjms30env
    • 如果您正在使用 64 位 JVM ,请使用脚本 setjms30env64

    这些脚本位于 MQ_INSTALLATION_PATH/java/bin 目录中,其中 MQ_INSTALLATION_PATH 表示安装了 IBM MQ 的高级目录。

    您可以通过多种方式使用这些脚本。 您可以使用该脚本作为设置所需环境变量的基础,如表中所示,或者使用文本编辑器将这些变量添加到 .profile 。 如果您具有非典型安装,请在必要情况下编辑脚本内容。 或者,可以在要从中运行 JMS 启动脚本的每个会话中运行该脚本。 如果选择此选项,那么在 JMS 验证过程中,需要在启动的每个 shell 窗口中运行脚本:
    • [JMS 2.0 ]对于 JMS 2.0,请输入 . ./setjmsenv../setjmsenv64
    • [Jakarta Messaging 3.0 ]对于 Jakarta Messaging 3.0,请输入 . ./setjms30env. ./setjms30env64

    [IBM i]IBM i上,必须将环境变量 QIBM_MULTI_THREADED 设置为 Y。 随后可使用运行单线程应用程序的方法来运行多线程应用程序。 有关更多信息,请参阅 使用 Java 和 JMS 设置 IBM MQ