本教程演示如何设置名为
QM_ORANGE 的队列管理器和名为 QM_APPLE 的队列管理器之间的消息传递。您可以通过将同一计算机上的发送队列管理器设置为目标队列管理器,完成本教程并验证环境。在发送队列管理器上创建的消息会传递到接收队列管理器上名为
Q1 的队列(此队列称为远程队列)。
要点: 在本教程中,您必须使用在其中创建了队列管理器 QM_APPLE 和本地队列 Q1 的机器。
您必须在自己的计算机上设置队列管理器和队列(远程队列定义和传输队列),然后定义消息通道。最后,将测试消息放入发送队列管理器,并从接收队列管理器上的队列获取该消息。
完成本教程后,您应该基本了解如何使用远程队列定义来设置和使用 WebSphere® MQ 消息传递。
一:在发送机器上创建队列管理器
过程
- 启动 WebSphere MQ 资源管理器。
- 在“导航器”视图中,右键单击队列管理器文件夹,然后单击 将打开“创建队列管理器”向导。
- 在队列管理器名称字段中,输入 QM_ORANGE。
- 单击下一步两次以转至向导的“输入配置选项”部分。
- 选择创建服务器连接通道。
- 确保选择自动启动队列管理器。
- 单击下一步以转至向导的步骤 4。
- 确保选中创建配置用于 TCP/IP 的侦听器复选框。
- 如果完成按钮不可用,那么在侦听端口号字段中输入另一个端口号。 如果当前值为 1414,那么尝试输入
1415 或 1416
- 单击完成。
结果
WebSphere MQ 资源管理器的“
导航器”视图中的
队列管理器文件夹中会显示表示此队列管理器的图标,并且在您创建队列管理器后,该队列管理器会自动开始运行。
使用 MQSC 创建发送队列管理器
关于此任务
在发送机器上打开命令提示符,然后按照以下步骤操作:
过程
- 通过输入以下命令来创建名为
QM_ORANGE 的缺省队列管理器:
crtmqm QM_ORANGE
此时会显示消息,告诉您已经创建了队列和缺省 WebSphere MQ 对象。 - 通过输入以下命令来启动此队列管理器:
strmqm QM_ORANGE
此时会显示一条消息,告诉您何时启动了该队列管理器。
二:在发送队列管理器上创建队列
过程
- 在“导航器”视图中,展开队列管理器文件夹。
- 展开队列管理器
QM_ORANGE。
- 右键单击队列文件夹,然后单击。 将打开“新建远程队列定义”向导。
- 在名称字段中,输入
Q1。
- 单击下一步。
- 在远程队列字段中,输入
Q1
- 在远程队列管理器字段中,输入
QM_APPLE
- 在传输队列字段中,输入
QM_APPLE
- 单击完成。 您现在已经创建了远程队列定义。
- 单击 QM_ORANGE 队列管理器。
- 右键单击队列文件夹,然后单击 将打开“新建本地队列”向导。
- 在名称字段中,输入
QM_APPLE
- 单击下一步。
- 在用途字段中,选择传输。
- 单击完成。 您现在已经在本地机器上创建了传输队列。
结果
“内容”视图中将会显示新队列
Q1 和 QM_APPLE。
如果内容视图中未显示这些队列,请单击位于内容视图顶部的“刷新”按钮
。
使用 MQSC 来在发送队列管理器上创建队列
关于此任务
在发送机器上打开命令提示符,然后按照以下步骤操作:
过程
- 通过输入以下命令来启动 MQSC:
runmqsc
此时会显示一条消息,告诉您 MQSC 会话已启动。
- 通过输入以下命令来定义名为
QM_APPLE 的本地队列:
define qlocal (QM_APPLE) usage (xmitq)
此时会显示一条消息,告诉您何时创建了该队列。
- 通过输入以下命令来定义远程队列定义:
define qremote (Q1) rname (Q1) rqmname(QM_APPLE) xmitq (QM_APPLE)
结果
您现在已经在发送队列管理器上创建了队列。下一个任务是创建发送队列管理器和接收队列管理器之间的消息通道。
三:创建消息通道
过程
- 在接收队列管理器
QM_APPLE 上,创建通道的接收方端:
- 在“导航器”视图中,展开先前创建的队列管理器
QM_APPLE.
- 右键单击文件夹,然后单击。 将打开“新建接收方通道”向导。
- 在名称字段中,输入
QM_ORANGE.QM_APPLE
- 单击完成。 您现在已经在接收机器上创建了接收方通道。
- 在发送队列管理器
QM_ORANGE 上,创建通道的发送方端:
- 展开先前创建的队列管理器
QM_ORANGE.
- 右键单击文件夹,然后单击。 将打开“新建发送方通道”向导。
- 在名称字段中,输入
QM_ORANGE.QM_APPLE,然后单击下一步。
- 在连接名称字段中,输入接收机器的计算机名称或 IP 地址(您应该已经在系统管理员的帮助下获得此信息)。
如果在创建 QM_APPLE 时未使用缺省端口号 1414,那么“连接名称”字段条目应采用以下格式:
con-name(port)
其中,con-name 是接收机器的计算机名称或 IP 地址,port 是在设置接收队列管理器时使用的端口号。
- 在传输队列字段中,输入
QM_APPLE
- 单击完成。
- 单击通道文件夹。
- 右键单击
QM_ORANGE.QM_APPLE。
- 从弹出菜单中,单击启动。
- 单击确定。 您现在已经在发送机器上创建了发送方通道。
注: 您不必启动接收方通道,因为它已在您设置发送方通道时自动启动(在设置发送方通道时,您指定了接收方通道的 IP 地址)。
结果
现在,您已经在接收队列管理器 QM_APPLE 上创建了接收方通道 QM_ORANGE.QM_APPLE,并且在发送队列管理器 QM_ORANGE 上创建了发送方通道 QM_ORANGE.QM_APPLE。此外,您还已经启动发送方通道,从而自动启动了接收方通道。
使用 MQSC 创建消息通道
过程
- 在接收机器上打开命令提示符,然后按照以下步骤操作:
- 通过输入以下命令来启动 MQSC:
runmqsc
此时会显示一条消息,告诉您 MQSC 会话已启动。
- 通过输入以下命令来定义接收通道:
define channel (QM_ORANGE.QM_APPLE) chltype (RCVR) trptype (TCP)
此时会显示一条消息,告诉您何时创建了该通道。
- 打开新的命令窗口并查看哪些端口空闲。输入下列命令:
netstat -an
这将显示正在运行的进程的列表。查看每个进程的端口号以了解端口 1414 是否正在使用中;您可以通过查看本地地址列来找到它。该信息采用 ip_address:port_being _used 格式提供。
如果端口 1414 未使用,那么稍后在验证时使用 1414 作为侦听器和发送方通道的端口号。如果它在使用中,那么选择未使用的备用端口;例如,如果 1415 未被另一进程使用,那么选择该端口。
- 验证要求您启动缺省的 WebSphere MQ 侦听器。缺省情况下,该侦听器将侦听端口 1414。如果在步骤
c 中发现端口 1414 空闲,那么不需要执行任何操作即可继续执行步骤
e。如果必须使用除 1414 之外的端口,那么修改 SYSTEM.DEFAULT.LISTENER.TCP 的定义。例如,要使用端口 1415,请在 MQSC 窗口中输入下列命令:
alter listener(system.default.listener.tcp) trptype(tcp) port(port_number)
其中
port_number 是应该对其运行侦听器的端口的号码。这必须与在该过程的步骤 2b 中定义发送方通道时使用的端口号相同。 - 在 MQSC 窗口中,通过输入以下命令,启动缺省的 WebSphere MQ 侦听器:
start listener(system.default.listener.tcp)
- 通过输入以下命令来停止 MQSC:
end
将显示一些消息,然后会显示命令提示符。
- 在发送机器上打开命令提示符,然后按照以下步骤操作:
- 通过输入以下命令来启动 MQSC:
runmqsc
此时会显示一条消息,告诉您 MQSC 会话已启动。
- 通过输入以下命令来定义发送方通道:
define channel(QM_ORANGE.QM_APPLE) chltype(sdr) conname('con-name(port)') xmitq(QM_APPLE) trptype(tcp)
值
con-name 是接收方工作站的 TCP/IP 地址。值 port 是接收方机器上对其运行侦听器的端口,缺省值是 1414。
- 通过输入以下命令来启动通道:
start channel (QM_ORANGE.QM_APPLE)
- 通过输入以下命令来停止 MQSC:
end
将显示一些消息,然后会显示命令提示符。
结果
您现在已经创建了将消息从发送队列管理器 QM_ORANGE 发送到接收队列管理器 QM_APPLE 上的队列 Q1 所需的全部 WebSphere MQ 对象。下一个任务是发送测试消息。
四:将测试消息放入队列
您只能使用 MQSC 命令行界面来执行此任务:将测试消息放入队列
将测试消息放入队列
关于此任务
在发送机器(托管队列管理器
QM_ORANGE 的机器)上执行此任务。
使用
amqsput 样本程序来将消息放入您创建的队列。
在 Windows 上,缺省情况下样本程序随 WebSphere® MQ 服务器或客户机一起安装。在 Linux 上,需要安装样本程序 RPM。
打开命令提示符,然后按照以下步骤操作:
过程
- 启动
amqsput 样本程序,如下所示:
- 在 Linux 上,更改到
/opt/mqm/samp/bin 目录,然后输入命令:
./amqsput Q1 QM_ORANGE
- 在 Windows 上,输入命令:
amqsput Q1 QM_ORANGE
此时会显示以下消息:
Sample amqsput0 start
target queue is Q1
- 在一行或多行上输入某些消息文本,然后按
Enter 键两次。 此时会显示以下消息:
Sample amqsput0 end
结果:您现在已经创建了测试消息并将其放入远程队列。下一个任务是验证是否已接收到测试消息。
五:验证是否已发送测试消息
使用 WebSphere MQ 资源管理器来验证是否已发送测试消息
关于此任务
在接收机器(主管队列管理器
QM_APPLE 的机器)上执行此任务。
在接收队列管理器上:
过程
- 在“导航器”视图中,展开队列管理器
QM_APPLE。
- 单击队列文件夹。
- 在“内容”视图中,右键单击队列
Q1,然后单击浏览消息。 将打开消息浏览器,显示当前
Q1 上的消息列表。
- 双击列表中的最后一条消息以查看其属性对话框。
结果
在属性对话框的
数据页上,
消息数据字段以人类可读的格式显示了消息的内容。
使用 MQSC 验证是否已发送测试消息
关于此任务
您在接收机器(主管队列管理器 QM_APPLE 的机器)上执行此任务。使用
amqsget 样本程序来从队列中取回消息。
打开命令提示符,然后按照以下步骤操作:
过程
启动 amqsget 样本程序,如下所示:
- 在 Linux 上,更改为 MQ_INSTALLATION_PATH/samp/bin 目录,其中
MQ_INSTALLATION_PATH 表示 WebSphere MQ 所安装在的高级目录。输入以下命令:
./amqsget Q1
- 在 Windows 上,输入命令:
amqsget Q1
结果
此时样本程序会启动,并且您的消息会与此队列上的任何其他消息一起显示。在短暂停留后,样本程序结束,并再次显示命令提示符。
您现在已经完成了本教程。