首先介绍一下MQ MQ消息队列的简称是一种应用程序对应用程序的通信方法。说白了也就是通过队列的方式来对应用程序进行数据通信。而无需专用链接来链接它们。 MQ的通讯方式 1.数据报的方式 Datagram (Send and forget) 应用程序在创建完消息后。利用MQ的API将消息发送到队列中。它充分利用了MQ(once and once only ) 2.请求和应答方式 Request/Reply 发送消息之后需等待对方处理结果。 需考虑如下问题: a.等待应答的时间是多少? b.如果没有应答怎么办。 c.本次session是否需要保留? MQ的开发流程 1.让应用程序与队列管理器链接,通过MQconnect调用来进行此链接。 2.使用MQOpen调用为输出打开一个队列 3.应用程序使用MQPut调用将其数据放到队列上。 4.调用MQOpen调用打开输入队列 5.使用MQGet从队列上接收数据
) X6 `) H9 s0 o" a( \ n+ [安装步骤。(此处为转载文章,作者已经证实所有步骤。)
, t) ^8 A L) Y- ]6 U& P2 ~0 lWindows下 WebSphere MQ
z. R& V k; X5 O$ G3 M服务端的安装: ( 1)把WebSphere MQ
: w# T4 J. ]# y* GWindows版服务器CD-ROM插入CD-ROM驱动器。 ( 2)如果安装了自动运行,那么会启动安装进程。如果不启动,则双击CD-ROM上的根目录中的Setup图标以启动安装程序。 (3)请等待,直到出现"WebSphere MQ
# d% o& O/ ?- x! u% K2 s+ @安装启动板"窗口为止。 (4)如果需要更改安装的本地语言,单击"选择语言"图标,然后从列表中选择所需的语言。 (5)选择必备软件选项。 选择典型安装后,安装界面上的每个安装项右边有一个对钩号(表示已安装),反之则为一个叉号(表示还没有安装,如果要装 MQ,则必须先把这些软件装好)。 如果出现了叉号: 1)单击项目左边的 "+"号以显示安装连接; 2)选择要使用的安装源的选项,从以下各项选择:
. b. J9 Y q4 `) ?( ^9 X) I# b. S - WebSphere MQ CD
- 因特网
- 网络) A' ]* c' i) Z& i, H$ E
0 f7 a4 [/ ]" p" ^) b. ^/ E: M5 H( 6)安装完成时,单击项目左边的"-"符号。
( g1 l# E7 l, N! ]) u- C注意:对于定制安装,可能不需要所有的必备软件。 ( 7)安装完所有的必备软件,然后选择"网络先决条件"选项。 ( 8)选择"WebSphere * h1 Y6 v6 M6 d; M+ i
MQ"安装选项 (9)选择启动WebSphere ' k" f1 }; x. z: F- B [" f& C
MQ安装程序,然后等待,直到显示了带有欢迎信息的"WebSphere MQ安装"窗口为止。 (10)单击"下一步"按钮继续。 (11)阅读面板上的信息和许可证条款,选择接受,然后单击"下一步"。 (12)如果机器上未安装过此产品的前一个版本,则显示"安装类型"面板。选择希望的安装类型(一般选择"典型"安装即可),然后单击"下一步"按钮。 (13)"WebSphere
' u4 S# A6 Y' c$ U! D6 b+ a: [MQ安装"窗口显示"安装WebSphere MQ就绪"信息。该窗口还显示用户选中的安装摘要,单击"安装"开始正式安装。 ( 14)成功安装WebSphere
, o0 H2 G% W: z0 x* M, e9 KMQ后,"WebSphere MQ安装"窗口显示以下信息:安装向导成功完成。 ( 15)单击"完成"按钮启动"准备WebSphere ( C f! ~# K' B# K
MQ"向导。 安装图示
: s) [# i: y0 @' W* T1 i) V# q) V, U5 ^

) q0 u7 n) w% v1 Q' }; m
. s. h: ?+ y1 f% u+ k, i
7 s$ x& f# [3 q& B( R! ^- g# u$ L3 z. B# W. `3 {1 [
' D: Y, m1 |' S$ U: F
- M% ^7 X, v4 Z* h

7 k/ s, t, H6 A0 [) j( Z3 p: |' P2 O
; q+ b4 Q0 @& x* L2 z m6 O
+ w4 m3 Z! a1 x# w7 A
z" ~+ u- [ _6 Y
0 J0 ]. C9 L# g 2 m3 c$ t5 y$ [1 D& P/ o+ ]
9 y& R4 Z) N5 q+ V3 D' w
( A1 Q3 O) c* C9 c9 p7 A2 V8 Z9 `" S8 l/ c# X& q/ R2 n

0 B+ Y" Y, Q6 y1 l8 F Q) k9 Z; }; u
3 W$ Y. W8 G t : d- e% k5 ]' x) g8 I; j [& d' _" o
$ [+ f3 p2 @) w/ \
, V9 B5 ?8 i! m , t# W' x/ J! B% L! m% f
) v/ i" h$ a- g" B: f! a( j2 F - j5 A' Y" {! Y4 \( ~* D
# w/ w" w; C1 z9 z# g3 c. y5 A
% A- P, p) o3 R0 r) {. A5 K- a% ]2 U9 v

1 Q( u; d$ U! A
/ G3 l; i/ Z5 E9 T 4 n# L+ T- r8 _4 s# c# W3 D6 [
# n) _$ V* C4 j& H: _; W, u2 [ + t4 ?; C1 u& N, ^$ R
% l" p2 h% Z& G" l# h' O" ?
9 K8 ~- {9 I4 Z/ j
& x4 s# d/ {& m& r4 D/ W5 `应用分析7 x5 ?& `' z& o9 U. l; B9 O) k
# e$ b/ B: D/ L3 |0 W+ P2 W: z
该章节主要内容包括MQ服务端的基本配置,如队列管理器,队列以及通道的建立, ' T% y H8 A' G+ c. ?6 U. q% P
且包含JAVA实现的客户端程序。由此构成一个完整的客户端-服务器的流程。2 B3 v2 `* y% _9 F$ X
: P: c0 Y# P5 {* g/ L
+ o0 M& r) m! }, V. O7 V" H/ Q5 T
服务端配置
8 n3 ]9 f* g4 i6 d) @7 E$ v3 k& K* o Z$ W& j. i2 `
1)点 "开始"->"所有程序"->"IBM
! h1 P, k- D. |/ N6 Q$ RWebSphere MQ"->"WebSphere MQ 资源管理器",进入WebSphere MQ ; y8 y0 Q- b- }. H$ _
资源管理器界面。如下图所示: W! ?" B1 m3 A
! I v& H% Q) E% w
图9 & n2 z( r0 `: M1 O
服务端配置 ^0 k+ ?* y7 P! i9 |: N" a

5 U) D$ q9 ~+ ]# H2)创建名为 "QM_JACK"的队列管理器 3 j, E# {7 }4 _' u
<1>选中 "队列管理器"->"新建"->"队列管理器",如下图所示:
( m+ p/ F! ]" V0 _% E& P9 e7 y3 [
, X& w! O" m4 d 图10 创建名为"QM_JACK"的队列管理器
6 t8 O% \3 Q. s0 o
U+ I L) P- M& l9 `% i( E m* Z z) x<2>在队列管理中输入 "QM_JACK",其他选项默认不变,点"下一步": $ r2 Y# k% y! |3 d
1 _" O- `* @0 X' C, | 图11 在队列管理中输入"QM_JACK"
% d+ h! S( f# i8 Y
& g: l$ T/ ^- t, J, W( _# h<3>设置队列日志(本步骤采用系统默认设置),点 "下一步": . a/ M. W0 ~3 p0 o/ p% {
9 p4 C1 V7 P- A2 x$ u; N8 A3 V 图12
* r+ Y2 ]7 u1 @1 H1 N+ [: T设置队列日志
3 i$ o2 h3 P# W 4 m7 y( S+ r5 S1 ]' e0 ]" w
<4>启动队列管理器,创建服务器连接通道,允许在 TCP/IP上进行队列管理器的远程管理,点击"下一步":
! P9 R: r& J/ V X9 o
& V! v9 O/ l- j# V 图13 创建服务器连接通道 * v" S8 p5 [1 K3 m/ S$ q! w
 9 _: Q9 A3 f( i/ p2 \% B+ h+ |8 u
<5>设置队列管理器 QM_JACK的侦听端口:8927(用户可以根据需要自行更改端口号),点击"完成"。 6 Y. ~9 s8 X8 C/ i
, [# k* Y& ^5 m 图 14
) k1 f4 Y" c& ~8 d8 S# x3 L设置队列管理器QM_JACK的侦听端口
1 S" U0 _* a+ U: F7 D) ~ 3 y9 }1 ]$ w; ]- N9 `
<6>系统进入等待界面: 8 G: P# r: u& r8 G; E1 r$ T
: H' g. H- H" o }1 M& f
图 15 ; K6 v& U' O4 e3 O% W0 `$ C" n
系统等待界面
$ Z+ Y) o5 y5 T2 I3 a8 l2 k
) H6 n4 B: M$ i: O- Z2 L& y1 g/ Z<7>队列管理器 QM_JACK创建成功
3 L4 |5 `! e) G* b
3 J. v d% ?. Q- d 图 16
! b. {3 a! s3 J% k% n& @7 F1 n8 `系统队列管理器QM_JACK创建成功 - n v0 z. H4 K. y" c4 C! x4 w

0 _+ s- K. p! x: l3)在 QM_JACK下创建名为"QUEUE_RECV"和"QUEUE_REPLY"的本地队列(客户可以根据自己的需求随意更改本地队列的名字和数量,这里创建这两个本地队列只是为之后的MQ_Tuxedo项目作准备): , T, ~ U7 D/ z$ [: q" D1 J( _
r" @( _! S3 ]0 c( a" k c" T
图17 定义本地队列
$ V# o# R3 g7 N W& B& |. f& a: V; ^6 P0 ~1 g8 s

/ H2 N1 p8 a; Q' y$ w1 g# ^9 X4 ^& ~1 I0 T2 p- s, }, o( F
图18 定义本地队列 + N: v+ E3 Z* o& A/ o
 设置队列名后其他属性全为系统默认值,点击 "确定"。 4)在 QM_JACK下创建名为"CNN_JACK"的服务器通道。
( b( r+ V! C8 E 图 19
9 ~; C/ Q3 ]* y2 f1 `( K创建服务器连接通道 ( y0 k2 J8 K' I' J

6 l/ O9 z+ G) Q T, w7 m' G
! ~# R1 Y4 D. c) x2 V# ]9 w9 w 图20 创建服务器连接通道 , C- O2 N) V% ?; y
 通道名称设为 CNN_JACK,其他选项保留为系统默认设置,点击"确定"。 5)在 MQ服务器端的计算机用户中添加MQ客户端所在计算机的系统用户。比如我的MQ客户端被Suse : x ~) [( g* S2 L& Z. j, k
Linux下的root用户使用,那么,我们就需要在MQ的服务端(也就是Windows , `& h7 ^5 Z5 p/ A! M! _, E2 B) b
xp系统中添加名为"root"的用户)所在的计算机系统中添加名为"root"的用户。具体步骤如下: <1>点击 "开始"->"控制面板"->"计算机管理"->"系统工具"->"本地用户和组"->"用户",点右键,选"新用户",如下图所示:
' h8 l [! E. G, a3 j5 c( U 图21
8 Q" c3 f5 I& a0 l# ~创建系统用户 6 {9 T+ d2 G4 h: h
 ( ]3 D, }3 C9 |+ `
<2>创建新用户: root(注意:这里的用户名"root"是MQ客户端所在系统的用户名,用户要根据具体情况进行修改) , }2 a% T1 u1 V. X' s3 O- \; H
图22 创建系统用户& g8 U) F. N3 ~: `) Q( U
 随意设置一个有效密码,选中密码永不过期,点击 "创建"。 <3>将新用户加入 mqm组(注意:这里的mqm组是我们安装完MQ
0 R2 P0 h- v( b& H0 D9 ~) nServer后系统自动创建的)。具体操作如下:
' x; R6 V9 C) y0 I; G5 J7 O5 ^ 图23
W# _$ C6 K) m& z2 G设置系统用户所在组 6 f4 L, _& i0 \$ }. i& F
点击 "属性":
- f% P6 f; S/ g+ v7 K 图24 设置系统用户所在组 3 o# l; v8 t- H0 s
 点击 "添加":
% F, R0 W+ Q0 F5 l4 M& D 图25 2 p' }3 i2 b6 c8 {6 d
设置系统用户所在组* o1 j. Y! u& x, J. k. B |' g

输入对象名称: mqm,点击"确定": ) v0 r! T7 ~; Q+ S
图26 设置系统用户所在组
3 y" K0 [1 V! r4 m p root用户被添入 mqm组中:
* l7 _1 V. P! H2 m1 ] 图27 设置系统用户所在组
1 @1 v& |4 q/ F- L : O: P; r+ [$ ?. K
点击 "应用",点击"确定"。 重启机器。至此, MQ服务端的配置完成。 , h9 @' q* _- f
|