首先介绍一下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从队列上接收数据 ' N; S7 x1 K5 [! _- c
安装步骤。(此处为转载文章,作者已经证实所有步骤。) / X' D8 X% |+ w7 z G
Windows下 WebSphere MQ
1 ^& V( ~8 D; J* T: B+ t( L! b+ u3 {服务端的安装: ( 1)把WebSphere MQ ) n' \! J. p/ N5 W( {9 ^3 N( C
Windows版服务器CD-ROM插入CD-ROM驱动器。 ( 2)如果安装了自动运行,那么会启动安装进程。如果不启动,则双击CD-ROM上的根目录中的Setup图标以启动安装程序。 (3)请等待,直到出现"WebSphere MQ
9 O, n! V6 i0 {5 D( C4 t" a安装启动板"窗口为止。 (4)如果需要更改安装的本地语言,单击"选择语言"图标,然后从列表中选择所需的语言。 (5)选择必备软件选项。 选择典型安装后,安装界面上的每个安装项右边有一个对钩号(表示已安装),反之则为一个叉号(表示还没有安装,如果要装 MQ,则必须先把这些软件装好)。 如果出现了叉号: 1)单击项目左边的 "+"号以显示安装连接; 2)选择要使用的安装源的选项,从以下各项选择: 9 X+ ]9 e M6 ]+ `7 P
- WebSphere MQ CD
- 因特网
- 网络, J2 q3 l' p; X4 X5 q! G+ _
* N2 C# @& P2 t& y
( 6)安装完成时,单击项目左边的"-"符号。
3 L5 A" P: l0 I9 b注意:对于定制安装,可能不需要所有的必备软件。 ( 7)安装完所有的必备软件,然后选择"网络先决条件"选项。 ( 8)选择"WebSphere
$ S! D, V- w8 j" @MQ"安装选项 (9)选择启动WebSphere
" [0 w5 |/ m" ^7 E: Q1 {! s8 vMQ安装程序,然后等待,直到显示了带有欢迎信息的"WebSphere MQ安装"窗口为止。 (10)单击"下一步"按钮继续。 (11)阅读面板上的信息和许可证条款,选择接受,然后单击"下一步"。 (12)如果机器上未安装过此产品的前一个版本,则显示"安装类型"面板。选择希望的安装类型(一般选择"典型"安装即可),然后单击"下一步"按钮。 (13)"WebSphere
( c; K* n& @) ]9 C0 rMQ安装"窗口显示"安装WebSphere MQ就绪"信息。该窗口还显示用户选中的安装摘要,单击"安装"开始正式安装。 ( 14)成功安装WebSphere + d# N/ Y! ~% R8 w( s6 a
MQ后,"WebSphere MQ安装"窗口显示以下信息:安装向导成功完成。 ( 15)单击"完成"按钮启动"准备WebSphere 3 _2 ~/ l( C0 {- y$ |0 J! G6 `
MQ"向导。 安装图示
) B+ _/ w% T. O- [- F
" c8 n. M5 ?4 o+ Z- j
5 M+ }* t7 y h; p3 f' a y/ J$ f6 t+ d o" b1 |

. o/ o+ {5 S8 O; p" Y/ j$ M# W1 p! {5 x4 n, P7 N, @9 v- Z4 J

7 v q! n4 g' ], M- D% B0 {+ y# _
7 h# h" a5 K0 f/ ~% M
4 y" D: O+ |! n& i# m9 q' O5 c0 k% G* ^
% P9 [8 z5 G2 m& Z/ F: Y3 c8 I1 x& d% x/ }' Y
9 g% M8 d" V5 d ^% w
& p! D4 ]' Z. d$ `/ E4 ] 8 d7 t( X5 ]# m
0 P5 ~, F0 {7 M/ B2 D/ n " H9 t6 h- W/ v0 H( R6 V# h F6 n: B
$ f% b. g3 B9 G& \

7 K2 E& C' I: K+ o! B. l
6 ~' f9 r; v& D, _ % V+ f" ~% \. N n" K' j9 W
+ E- f# W" \2 ]/ L5 k

( L0 z2 `8 x. q9 x* c( }1 h) f1 B" r
' \: r6 _: P2 V9 r$ \
0 ?1 \* ]! l: U
. h/ D4 K) E; d7 a; K' C- `5 N
- W- e4 |9 Z: T% a) x/ b
: k- M5 N9 `* y " w; R" Y2 |- d- m( I1 H
* |1 X5 n9 p7 J" x

0 l( N4 ^) C" |' K1 I/ f+ E
! _+ x. q" @; T& y& M8 S5 G. m # ?: }8 n" }$ ?
" V* [6 V' u3 [* M" i7 z

! g `0 R; \5 `% T8 h; i7 j! t# O+ g; Q, K6 R
1 N$ q9 m) a3 `( ~+ r
$ e O* J) t. h* t. E8 `9 u" ^, J应用分析
! I; _4 w+ ^" V( } D3 P5 _: ~
: k8 C& i7 E/ ^" e9 O% p/ Y该章节主要内容包括MQ服务端的基本配置,如队列管理器,队列以及通道的建立,
, z6 [1 V3 X" C( s4 ^. B且包含JAVA实现的客户端程序。由此构成一个完整的客户端-服务器的流程。) W) u- q: ^0 q
* j' d- k4 v' H! W! Y5 u; x, Z
1 p2 V( z6 @" A& F( [( V
服务端配置
4 y# o; |2 V9 ~: {- l8 s
5 U: S5 W! h8 z! S8 a- n1)点 "开始"->"所有程序"->"IBM
+ j6 H' V! F1 O$ UWebSphere MQ"->"WebSphere MQ 资源管理器",进入WebSphere MQ
- H) {7 Q9 S1 V+ v _/ K. l资源管理器界面。如下图所示: ' n1 Q# m4 g" u* b: r" W' }
6 F1 d1 c& m {
图9
4 I2 }" S) M0 E服务端配置 ; Z+ c: o! [3 A! ]) J& R
 7 G" W4 _. x- \2 w3 H1 h3 s" p
2)创建名为 "QM_JACK"的队列管理器
1 S- c: s* b- {% [$ l<1>选中 "队列管理器"->"新建"->"队列管理器",如下图所示: , N' n/ f2 }- D6 ?: z6 S7 S+ V
3 W& B ^) v" e4 v! R! q' d 图10 创建名为"QM_JACK"的队列管理器
- G7 J- }0 C% N' M$ m, `5 L ) o$ a$ T- Q$ R' u, I; \" J
<2>在队列管理中输入 "QM_JACK",其他选项默认不变,点"下一步": 5 _$ c3 ^0 z6 e, R( \
' B: i" X4 a3 g4 r! ^: ]: F
图11 在队列管理中输入"QM_JACK"
! I* K$ K5 ^6 }/ Z* I' ]$ g # L* U5 b0 T! K0 Z% h8 G! ]- R6 { T
<3>设置队列日志(本步骤采用系统默认设置),点 "下一步":
/ |, v7 S5 M) x; F" P& [. N c$ [9 g0 J* o* q
图12
' @2 t( w% J1 d1 `4 w2 _设置队列日志 3 z) E, m- J0 P" r" T

/ u4 y6 y9 p1 v2 B+ a<4>启动队列管理器,创建服务器连接通道,允许在 TCP/IP上进行队列管理器的远程管理,点击"下一步":
2 |# Y8 J3 U; y5 d8 t* ], m
7 w" b$ f; v6 ~8 W/ G" o, F6 u/ p 图13 创建服务器连接通道
& W& `6 E7 y+ J
/ u0 N; g2 d) H$ E/ z<5>设置队列管理器 QM_JACK的侦听端口:8927(用户可以根据需要自行更改端口号),点击"完成"。 7 I9 u i* n6 M- f' m% Q2 S
1 p# m) J, G/ u. S* m2 w 图 14 6 y- t3 w) v. a5 G6 S |
设置队列管理器QM_JACK的侦听端口 $ J+ U+ U) Z4 J& a$ n; D6 i

. B6 Z" p0 ^& {3 P; t# @<6>系统进入等待界面:
% n7 T; G1 P/ N2 A1 X- D
4 D, A% n/ J% v5 j* n4 } 图 15 - A( `' ^; S* L+ h+ H8 K5 F5 L
系统等待界面 b; I. X" p5 j/ ^+ A: p3 Q

* [! l/ ], U- j3 C% L! [4 T<7>队列管理器 QM_JACK创建成功
( [/ U2 i7 ]& q1 M* r1 J8 a1 {. I( z# w1 G3 Y8 S
图 16
! j! \- E8 e1 }7 J1 k: W: i* x i系统队列管理器QM_JACK创建成功 ! {; ~/ p q3 w' T! m2 u
 . j5 _1 Q) }5 C* ] n$ v
3)在 QM_JACK下创建名为"QUEUE_RECV"和"QUEUE_REPLY"的本地队列(客户可以根据自己的需求随意更改本地队列的名字和数量,这里创建这两个本地队列只是为之后的MQ_Tuxedo项目作准备): 8 T" V# z+ u9 j( V1 l: [# r
6 q* g( u7 H# r5 ~6 u7 ~/ h% o
图17 定义本地队列 2 x+ Z I! [( x7 x' i* G) ]
$ b) l( z- E: k$ p. e* ? ; J m C, x/ k, a* z3 W
# y+ @* k0 {+ q! U/ ^( T4 J. c9 r# e
图18 定义本地队列
! e) ?7 _7 t, w! p5 T 设置队列名后其他属性全为系统默认值,点击 "确定"。 4)在 QM_JACK下创建名为"CNN_JACK"的服务器通道。 ( s2 |- D4 C/ U1 ]
图 19 1 z4 u; p5 H1 Z c/ l6 u0 o
创建服务器连接通道 4 m4 j8 ?% p/ o' {- F. Z

; C% `' }2 {5 O% [5 _% [+ t" K H7 Z, ]5 E+ [! Z/ Q+ N* P2 U' M
图20 创建服务器连接通道 4 X6 w( a$ D% N8 Q8 D
 通道名称设为 CNN_JACK,其他选项保留为系统默认设置,点击"确定"。 5)在 MQ服务器端的计算机用户中添加MQ客户端所在计算机的系统用户。比如我的MQ客户端被Suse ! N" Q. g2 w% N' y7 [8 r! k
Linux下的root用户使用,那么,我们就需要在MQ的服务端(也就是Windows
/ j7 _, B, u) f7 t* cxp系统中添加名为"root"的用户)所在的计算机系统中添加名为"root"的用户。具体步骤如下: <1>点击 "开始"->"控制面板"->"计算机管理"->"系统工具"->"本地用户和组"->"用户",点右键,选"新用户",如下图所示:
6 a$ P0 A4 ]$ d 图21
$ z9 ^& p: C) l' _/ A创建系统用户 : i% h: \% p9 @
 : L- g8 {/ [' ?: L* X4 ]
<2>创建新用户: root(注意:这里的用户名"root"是MQ客户端所在系统的用户名,用户要根据具体情况进行修改) - O& l+ k) Y4 w2 i
图22 创建系统用户
3 E1 t" l! o! p 随意设置一个有效密码,选中密码永不过期,点击 "创建"。 <3>将新用户加入 mqm组(注意:这里的mqm组是我们安装完MQ
8 v# |- e: G- z4 wServer后系统自动创建的)。具体操作如下: : _8 H# w8 a, h
图23
0 {7 }# u% A7 B6 H/ y4 P设置系统用户所在组
2 Z6 o5 f6 F# c( ?: l 点击 "属性":
/ x. h3 j- G: Y/ Y4 p( ^1 K* S# r9 I2 t 图24 设置系统用户所在组
# q; O7 p+ w% p" B: v* e$ ? 点击 "添加": l9 S5 I+ {: U% `& j0 p% u+ t3 s
图25
9 R0 G$ b2 X# K$ s设置系统用户所在组
: Y1 g; _+ L& |/ h+ U- z1 L" L 输入对象名称: mqm,点击"确定": n& `8 N" w% f5 s. V
图26 设置系统用户所在组
^) M' F$ s2 |& p: R2 G- W root用户被添入 mqm组中:
& s. Q( J: s q. s# J 图27 设置系统用户所在组
o9 s4 `, U: H+ z; F6 K
$ W2 a3 ]2 C4 {9 b点击 "应用",点击"确定"。 重启机器。至此, MQ服务端的配置完成。
1 B5 s) d& }9 I7 H) t |