IBM MQ classes for JMS 的发布/预订 IVT
IBM® MQ classes for JMS随附了发布/预订安装验证测试 (IVT) 程序。 该程序在绑定或客户机方式下连接到队列管理器,预订主题,发布有关主题的消息,然后接收刚刚发布的消息。 该程序可创建和配置在运行时动态需要的所有对象,或者可以使用 JNDI 来从目录服务检索受管对象。
在不先使用 JNDI 的情况下运行安装验证测试,因为该测试是自包含测试,无需使用目录服务。 有关受管对象的描述,请参阅 使用管理工具配置 JMS 对象。
在不使用 JNDI 的情况下进行发布/预订安装验证测试
在此测试中,IVT 程序会创建和配置在运行时动态需要的所有对象且不使用 JNDI。
提供了脚本来运行 IVT 程序。 该脚本在 UNIX and Linux® 系统上称为 PSIVTRun ,在 Windows上称为 PSIVTRun.bat ,并且位于binIBM MQ classes for JMS 安装目录的子目录。
PSIVTRun -nojndi [-m qmgr ] [-bqm brokerQmgr ] [-v providerVersion ] [-t]
PSIVTRun -nojndi -client -m qmgr -host hostname [-port port ] [-channel channel ]
[-bqm brokerQmgr ] [-v providerVersion ] [-ccsid ccsid ] [-t]
- --m qmgr
- IVT 程序连接到的队列管理器的名称。 如果在绑定方式下运行测试且省略此参数,那么 IVT 程序将连接到缺省队列管理器。
- -host 主机名
- 运行队列管理器的系统的主机名或 IP 地址。
- -port 端口
- 队列管理器的侦听器正在侦听的端口的编号。 缺省值为1414.
- -channel 通道
- IVT 程序用于连接到队列管理器的 MQI 通道的名称。 缺省值为SYSTEM.DEF.SVRCONN.
- -bqm brokerQmgr
- 运行代理程序的队列管理器的名称。 缺省值为 IVT 程序连接到的队列管理器的名称。
此参数与队列管理器版本号
v7(或更高)无关。 - -v providerVersion
- IVT 程序预期连接到的队列管理器的发行版级别。
此参数用于设置 MQTopicConnectionFactory 对象的 PROVIDERVERSION 属性,并具有与 PROVIDERVERSION 属性值相同的有效值。 因此,有关此参数的更多信息 (包括其有效值) ,请参阅 IBM MQ classes for JMS 对象的属性中 PROVIDERVERSION 属性的描述。
缺省值为unspecified.
- -ccsid ccsid
- 连接使用的编码字符集的标识 (CCSID) 或代码页。 缺省值为819.
- -t
- 已启用跟踪。 缺省情况下,已禁用跟踪。
5724-H72, 5655-R36, 5724-L26, 5655-L82 (c) Copyright IBM Corp. 2008, 2025. All Rights Reserved.
IBM MQ classes for Java(tm) Message Service 7.0
Publish/Subscribe Installation Verification Test
Creating a TopicConnectionFactory
Creating a Connection
Creating a Session
Creating a Topic
Creating a TopicPublisher
Creating a TopicSubscriber
Creating a TextMessage
Adding text
Publishing the message to topic://MQJMS/PSIVT/Information
Waiting for a message to arrive [5 secs max]...
Got message:
JMSMessage class: jms_text
JMSType: null
JMSDeliveryMode: 2
JMSExpiration: 0
JMSPriority: 4
JMSMessageID: ID:414d5120514d5f6d627720202020202001edb14620006706
JMSTimestamp: 1187182520203
JMSCorrelationID: ID:414d5120514d5f6d627720202020202001edb14620006704
JMSDestination: topic://MQJMS/PSIVT/Information
JMSReplyTo: null
JMSRedelivered: false
JMSXUserID: mwhite
JMS_IBM_Encoding: 273
JMS_IBM_PutApplType: 26
JMSXAppID: QM_mbw
JMSXDeliveryCount: 1
JMS_IBM_PutDate: 20070815
JMS_IBM_ConnectionID: 414D5143514D5F6D627720202020202001EDB14620006601
JMS_IBM_PutTime: 12552020
JMS_IBM_Format: MQSTR
JMS_IBM_MsgType: 8
A simple text message from the MQJMSPSIVT program
Reply string equals original string
Closing TopicSubscriber
Closing TopicPublisher
Closing Session
Closing Connection
PSIVT finished
使用 JNDI 进行发布/预订安装验证测试
在此测试中,IVT 程序使用 JNDI 从目录服务检索受管对象。
在可以运行测试前,必须配置基于轻量级目录访问协议 (LDAP) 服务器或本地文件系统的目录服务。 您还必须配置 IBM MQ JMS 管理工具,以便它可以使用目录服务来存储受管对象。 有关这些先决条件的更多信息,请参阅 IBM MQ JMS 类的先决条件。 有关如何配置 IBM MQ JMS 管理工具的信息,请参阅 配置 JMS 管理工具。
IVTSetup
此脚本调用 IBM MQ JMS 管理工具以创建受管对象。MQTopicConnectionFactory 对象与 ivtTCF 名称相关联,并使用其所有属性的缺省值来创建,这意味着 IVT 程序在绑定方式下运行,连接到缺省队列管理器,并使用嵌入的发布/预订功能。 如果您希望 IVT 程序以客户端模式运行,连接到默认队列管理器以外的队列管理器,或使用 "IBM Integration Bus而不是嵌入式发布/订阅功能,则必须使用 "IBM MQ"JMS管理工具或 "IBM MQ资源管理器来更改MQTopicConnectionFactory对象的相应属性。 有关如何使用 IBM MQ JMS 管理工具的信息,请参阅 使用管理工具配置 JMS 对象。 有关如何使用 IBM MQ Explorer 的信息,请参阅 IBM MQ Explorer 随附的帮助。
MQTopic 对象与 ivtT 名称相关联,并使用其所有属性的缺省值来创建,TOPIC 属性(其值为 MQJMS/PSIVT/Information)除外。
PSIVTRun -url "providerURL" [-icf initCtxFact ] [-t]
此命令上的参数具有以下含义:- -url"providerURL"
- 目录服务的统一资源定位符 (URL)。 URL 可以是以下某种格式:
- ldap://hostname/contextName ,针对基于 LDAP 服务器的目录服务
- file:/directoryPath ,用于基于本地文件系统的目录服务
- -icfinitCtxFact
- 初始上下文工厂的类名,其必须是以下值之一:
- com.sun.jndi.ldap.LdapCtxFactory,用于基于 LDAP 服务器的目录服务。 这是缺省值。
- com.sun.jndi.fscontext.RefFSContextFactory,用于基于本地文件系统的目录服务。
- -t
- 已启用跟踪。 缺省情况下,已禁用跟踪。
测试成功后,将生成类似于不使用 JNDI 成功测试时的内容的输出。 主要的区别在于,此输出指示测试正在使用 JNDI 来检索 MQTopicConnectionFactory 对象和 MQTopic 对象。
虽然不是严格需要,但最好是在测试后通过删除由 IVTSetup 脚本创建的受管对象来进行整理。 为此,系统提供了脚本。 该脚本在 UNIX and Linux 系统上称为 IVTTidy ,在 Windows上称为 IVTTidy.bat ,并且位于binIBM MQ classes for JMS 安装目录的子目录。
确定发布/预订安装验证测试的问题
- 如果 IVT 程序写入一条消息,指示它找不到类,请检查是否正确设置了类路径,如 为 IBM MQ classes for JMS 设置环境变量中所述。
- 测试可能失败,显示以下消息:
及关联原因码 2059。 此消息中的变量具有以下含义:Failed to connect to queue manager ' qmgr ' with connection mode ' connMode ' and host name ' hostname '- QMGR
- IVT 程序尝试连接到的队列管理器的名称。 如果 IVT 程序尝试在绑定方式下连接到缺省队列管理器,那么插入的此消息为空。
- connMode
- 连接方式,即Bindings或Client.
- HOSTNAME
- 运行队列管理器的系统的主机名或 IP 地址。
- 测试可能失败,显示以下消息:
此消息意味着已连接到 LDAP 服务器,但未正确配置 LDAP 服务器。 LDAP 服务器未配置为存储 Java 对象,或者对象或后缀上的许可权不正确。 要在此情况下获取更多帮助,请参阅 LDAP 服务器文档。Unable to bind to object - 测试可能失败,显示以下消息:
此消息表示未正确设置队列管理器以接受来自系统的客户机连接。 有关更多信息,请参阅 配置队列管理器以接受 Multiplatforms 版上的客户机连接。The security authentication was not valid that was supplied for QueueManager ' qmgr ' with connection mode 'Client' and host name ' hostname '