Linux 上的 WebSphere MQ 开发快速入门(1)
- UID
- 1066743
|
Linux 上的 WebSphere MQ 开发快速入门(1)
引言本文的目标是让您轻松实现 Linux® 上的 IBM® WebSphere® MQ 入门。由于大部分 Linux 服务器并没有图形用户界面,因此本文将说明如何使用命令行工具在 Linux 上安装和配置 WebSphere MQ。本文将说明如何使用 WebSphere MQ Java API 创建两个示例 Java™ 应用程序:MQSend(用于向队列发送消息)和 MQGet(用于从队列接收消息)。
先决条件- WebSphere MQ V6 安装包。
- 一台或两台安装了 Linux 的计算机。本文使用两台安装了 Suse Linux Enterprise Server V9 的计算机,不过也可以在一台计算机上完成所有工作。
- Linux 管理技能。
- Java 开发方面的经验将有所帮助,但并非必须的,因为我们提供了经过预编译的 Java 示例应用程序供下载和在命令行使用。
WebSphere MQWebSphere MQ 提供了连接层和应用程序的可靠集成,为 SOA 提供了所需的基础。WebSphere MQ 的主要特色功能包括:
有保证的消息交付基于可靠队列的消息传递,可确保消息不会丢失或重复。基于标准的开发使用 Java Message Service (JMS) API 和 Message Queue Interface (MQI)。 端到端安全使用安全套接字层(Secure Sockets Layer,SSL)进行身份验证、消息完整性检查和数据加密。Web 服务支持用于保证 Web 服务传输和可靠性的简单对象访问协议(Simple Object Access Protocol,SOAP)。异步处理对应用程序进行分离,以支持进行独立于时间的处理。多平台支持支持 80 种以上的配置。有关 WebSphere MQ 的更多信息,请参见本文结尾的。
安装 WebSphere MQ安装 WebSphere MQ 的过程非常简单——直接将安装包释放到目录中即可(本文使用 root 主目录下的 mq_install)。可以安装 RPM 安装包中的所有内容,但本文仅需要这部分东西。以下是 WebSphere MQ V6 中包括的包和目录:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| IBMJava2-SDK-1.4.2-0.0.i386.rpm
MQSeriesClient-6.0.0-0.i386.rpm
MQSeriesConfig-6.0.0-0.i386.rpm
MQSeriesFTA-6.0.0-0.i386.rpm
MQSeriesIES30-6.0.0-0.i386.rpm
MQSeriesJava-6.0.0-0.i386.rpm
MQSeriesKeyMan-6.0.0-0.i386.rpm
MQSeriesMan-6.0.0-0.i386.rpm
MQSeriesMsg_Zh_CN-6.0.0-0.i386.rpm
MQSeriesMsg_Zh_TW-6.0.0-0.i386.rpm
MQSeriesMsg_de-6.0.0-0.i386.rpm
MQSeriesMsg_es-6.0.0-0.i386.rpm
MQSeriesMsg_fr-6.0.0-0.i386.rpm
MQSeriesMsg_it-6.0.0-0.i386.rpm
MQSeriesMsg_ja-6.0.0-0.i386.rpm
MQSeriesMsg_ko-6.0.0-0.i386.rpm
MQSeriesMsg_pt-6.0.0-0.i386.rpm
MQSeriesRuntime-6.0.0-0.i386.rpm
MQSeriesSDK-6.0.0-0.i386.rpm
MQSeriesSamples-6.0.0-0.i386.rpm
MQSeriesServer-6.0.0-0.i386.rpm
MQSeriesTXClient-6.0.0-0.i386.rpm
PreReqs
READMEs
copyright
gsk7bas-7.0-3.15.i386.rpm
lap
licenses
|
下面是安装步骤:
- 设置 Linux 服务器。本文使用主机名 WMQ1 和 WMQ2。WMQ1 的 IP 地址为 192.168.28.71,WMQ2 的 IP 地址为 192.168.28.72。
- 安装 WebSphere MQ 前,必须执行 ./mqlicense.sh,以阅读和接受许可证。
- 安装所需的 MQ 包及 WebSphere MQ Java 和 IBM Java SDK 包,以便为 WebSphere MQ 开发 Java 客户机:
1
2
3
4
| wmq1:~/mq_install # rpm -ivh IBMJava2-SDK-1.4.2-0.0.i386.rpm
wmq1:~/mq_install # rpm -ivh MQSeriesRuntime-6.0.0-0.i386.rpm
wmq1:~/mq_install # rpm -ivh MQSeriesServer-6.0.0-0.i386.rpm
wmq1:~/mq_install # rpm -ivh MQSeriesJava-6.0.0-0.i386.rpm
|
WebSphere MQ 现在已经完成安装,并有用于进行配置的名为 mqm 的用户和组。缺省情况下,WebSphere MQ 安装在 /opt/mqm 中,队列和其他配置信息位于用户 mqm 的主目录中。Java SDK 安装在 /opt/IBMJava2-142 中,Java 解释程序位于 /opt/IBMJava2-142/bin 中。
下一步是进行配置。本文为两台计算机使用了具有本地和远程队列的单个队列管理器,用于测试示例应用程序。
配置 WebSphere MQWebSphere MQ 术语和定义
配置过程包括以下几个步骤:
- 创建队列管理器。
- 启动队列管理器。
- 创建队列和通道。
- 启动命令服务器、侦听器和通道。
两台 WebSphere MQ 计算机都需要执行这些步骤。下面的部分将仅说明如何在 WMQ1 上进行配置,但在 WMQ2 上也需要进行这些步骤。
创建并启动队列管理器使用 root 登录到 WMQ1,然后键入 su - mqm,以更改到用户 mqm。使用以下命令为 WMQ1 计算机创建队列管理器:
1
| mqm@wmq1:~/ # crtmqm WMQ1QM
|
使用以下命令启动队列管理器。
1
| mqm@wmq1:~/ # strmqm WMQ1QM
|
创建队列和通道使用命令行工具配置 WebSphere MQ。以下给出了 WMQ1 的配置脚本。此脚本定义本地队列、远程队列、传输队列、发送方通道和接收方通道。将以下脚本保存为 WMQ1QM.conf:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| DEFINE QLOCAL ('WMQ1InputQ') +
REPLACE
DEFINE QLOCAL ('WMQ2QMXmitQ') +
DESCR('Transmission Queue to WMQ2QM') +
USAGE(XMITQ) +
TRIGGER +
TRIGTYPE(FIRST) +
TRIGDPTH(1) +
TRIGDATA('WMQ1QM.WMQ2QM') +
INITQ('SYSTEM.CHANNEL.INITQ') +
REPLACE
DEFINE QREMOTE ('WMQ1OutputQ') +
XMITQ('WMQ2QMXmitQ') +
RNAME('WMQ2InputQ') +
RQMNAME('WMQ2QM') +
REPLACE
DEFINE CHANNEL ('WMQ1QM.WMQ2QM') CHLTYPE(SDR) +
TRPTYPE(TCP) +
CONNAME('192.168.28.72(1414)') +
XMITQ('WMQ2QMXmitQ') +
REPLACE
DEFINE CHANNEL ('WMQ2QM.WMQ1QM') CHLTYPE(RCVR) +
TRPTYPE(TCP) +
REPLACE
DEFINE CHANNEL ('SYSTEM.ADMIN.SVRCONN') CHLTYPE(SVRCONN) +
TRPTYPE(TCP) +
DESCR(' ') +
HBINT(300) +
MAXMSGL(4194304) +
MCAUSER('MUSR_MQADMIN') +
RCVDATA(' ') +
RCVEXIT(' ') +
SCYDATA(' ') +
SCYEXIT(' ') +
SENDDATA(' ') +
SENDEXIT(' ') +
REPLACE
|
上面的配置脚本可作为其他 WebSphere MQ 安装的模版使用。只需要更改粗体部分的名称,即可在其他 WebSphere MQ 安装中设置队列和通道。此配置脚本中包含大量条目——有关它们的更多信息,请参见 。
使用以下命令创建队列和通道,以配置 WebSphere MQ:
1
| mqm@wmq1:~/ # runmqsc WMQ1QM < WMQ1QM.conf > qcreate.log
|
runmqsc 命令用于发出 WebSphere MQ 命令。在本例中,这些命令从 WMQ1QM.conf 文件读取,而输出被定向到 qcreate.log。打开 qcreate.log,验证其中不存在语法错误,全部有效命令均得到了处理。
启动服务需要启动命令服务器、侦听器和通道,然后就可以进行示例应用程序的部署和测试工作了。
1
2
| mqm@wmq1:~/ # strmqcsv WMQ1QM &
mqm@wmq1:~/ # runmqlsr -m WMQ1QM -t TCP &
|
验证队列管理器和侦听器在两台计算机上运行,然后启动通道:
1
2
| mqm@wmq1:~/ # runmqchl -m WMQ1QM -c WMQ1QM.WMQ2QM &
mqm@wmq1:~/ # runmqchl -m WMQ1QM -c WMQ2QM.WMQ1QM &
|
现在已经安装了 WebSphere MQ,并进行了配置,已准备好可以进行测试了。下面一部分将给出两个基于 Java 的应用程序的源代码,分别用于向队列发送消息和从队列接收消息。 |
|
|
|
|
|