首先介绍一下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从队列上接收数据
0 k/ i/ B8 H: M: p, j: v安装步骤。(此处为转载文章,作者已经证实所有步骤。) 7 j4 A0 D V& `: l/ t) ?& `
Windows下 WebSphere MQ 5 U+ I2 v& V& I/ y
服务端的安装: ( 1)把WebSphere MQ + V1 S7 J4 `/ A
Windows版服务器CD-ROM插入CD-ROM驱动器。 ( 2)如果安装了自动运行,那么会启动安装进程。如果不启动,则双击CD-ROM上的根目录中的Setup图标以启动安装程序。 (3)请等待,直到出现"WebSphere MQ 1 U' z6 o4 k& ]3 ]8 J' C/ t
安装启动板"窗口为止。 (4)如果需要更改安装的本地语言,单击"选择语言"图标,然后从列表中选择所需的语言。 (5)选择必备软件选项。 选择典型安装后,安装界面上的每个安装项右边有一个对钩号(表示已安装),反之则为一个叉号(表示还没有安装,如果要装 MQ,则必须先把这些软件装好)。 如果出现了叉号: 1)单击项目左边的 "+"号以显示安装连接; 2)选择要使用的安装源的选项,从以下各项选择: 0 y/ x/ \6 t( w" [4 T) i n
- WebSphere MQ CD
- 因特网
- 网络7 \; O% o* T; j$ A
2 }7 z8 j& a: m( 6)安装完成时,单击项目左边的"-"符号。$ g3 y1 {% x8 m4 U* w
注意:对于定制安装,可能不需要所有的必备软件。 ( 7)安装完所有的必备软件,然后选择"网络先决条件"选项。 ( 8)选择"WebSphere h3 S [ _+ d& D7 ~: W Q$ J
MQ"安装选项 (9)选择启动WebSphere " F+ s* L' S6 ^ k6 ]' v: X+ P8 m- D
MQ安装程序,然后等待,直到显示了带有欢迎信息的"WebSphere MQ安装"窗口为止。 (10)单击"下一步"按钮继续。 (11)阅读面板上的信息和许可证条款,选择接受,然后单击"下一步"。 (12)如果机器上未安装过此产品的前一个版本,则显示"安装类型"面板。选择希望的安装类型(一般选择"典型"安装即可),然后单击"下一步"按钮。 (13)"WebSphere ) b1 Z7 K' Q7 g3 M! d- p6 s
MQ安装"窗口显示"安装WebSphere MQ就绪"信息。该窗口还显示用户选中的安装摘要,单击"安装"开始正式安装。 ( 14)成功安装WebSphere
" E. O ~) C! n4 j q: E% z3 vMQ后,"WebSphere MQ安装"窗口显示以下信息:安装向导成功完成。 ( 15)单击"完成"按钮启动"准备WebSphere
7 l8 {7 @: d7 Y5 Z$ D0 mMQ"向导。 安装图示 z Q; x. M9 g5 I- j: t% \4 w
* r. t" I& C5 @1 O; l

8 o9 y$ ~0 `! y5 ]/ q8 }& ]
9 }5 o) ^& C, ~9 v5 M 9 }5 l. q: C# p1 t
4 I" Q8 M& O+ _% J c
8 W+ E+ J8 N1 A6 {! Y J6 a$ H- a
0 i, _. V! I$ B6 k( G+ u7 J; g! E ! j+ F# | @5 L& d( D
+ u* l( ?$ z* a3 q! G5 ]& g* K* z: T+ B
: i4 Q0 U. F0 c' X6 M! F! J% b: d7 F

% l+ A6 F9 i& M8 e7 ]( T5 A
/ n1 f+ v. [5 S9 n, D5 x. M
- a+ O/ a8 E5 a) s1 S
9 A# R$ j6 D5 E , o9 r4 G- `; t; g1 l
0 t3 @" p. T% G4 C0 {5 L" p9 I( \& W/ U
% D* n5 m- { A* t# b
" h- b. q( H" {. w, D# S; \6 v
- t* c$ Z p+ b9 b8 z; d - D) C, F% o+ c% }8 g. y. c+ B
7 f2 b5 o4 F3 v* f k5 n
: H1 C: |) P8 z+ h( c

) ^6 A% }3 m* z0 Z# _ b- i7 G( d8 t* V

$ ^* x- K% v7 X [1 `; j$ x1 ~# X6 g# G! m

* m" R k2 n7 ~( b! Q9 J+ o% _( F. i) V- n' j0 _ x
& ^; O$ o5 R6 ~
" s: U% A" w& Z
9 V! t9 L6 N3 v* ]
% l' H6 N( U2 H e' x3 a

% ^3 s8 I5 P ~
7 o+ |: P: w5 w3 Y- B1 u ( V" f! X/ e5 m. A. u( v
& z( V5 r3 z0 P o8 U* h8 e
应用分析
, N+ ?6 _7 X+ `. x: W4 h! a! }. ~ l2 D5 W. X: b' J
该章节主要内容包括MQ服务端的基本配置,如队列管理器,队列以及通道的建立,
6 Z1 _- G0 m* T4 L7 D且包含JAVA实现的客户端程序。由此构成一个完整的客户端-服务器的流程。
+ @ U v! F$ l. `: B' P9 U! i, N
- D8 W( Q1 b0 @5 s2 R* G' u x服务端配置
0 G( H. m3 w2 Z, W/ k# e/ K6 r- J4 u7 q, Z! U
1)点 "开始"->"所有程序"->"IBM 7 y) S5 R9 S/ L0 l
WebSphere MQ"->"WebSphere MQ 资源管理器",进入WebSphere MQ
# z5 ], A: o7 P8 Y4 ]* p+ l资源管理器界面。如下图所示:
* a: I y i+ a& p J4 W# Z: r- b0 W
图9 , O n+ a& | E" w
服务端配置
0 H7 r! Q. M* `5 F
1 z2 Z% ~+ \0 i$ d2)创建名为 "QM_JACK"的队列管理器
2 B: j; {% k ]1 J ~ H2 O7 {<1>选中 "队列管理器"->"新建"->"队列管理器",如下图所示: ?! Z5 w4 A& P4 f, w0 [) H
9 n, n- |. _& K6 n2 Z6 m6 x8 B 图10 创建名为"QM_JACK"的队列管理器 * @& O/ V* W6 B$ p. M+ F
 0 @$ s1 h/ @# h- c E
<2>在队列管理中输入 "QM_JACK",其他选项默认不变,点"下一步": 4 V* K" o" M+ o' H7 h8 b+ B x% M
% @; W! o# L6 v8 z; D 图11 在队列管理中输入"QM_JACK" ( l5 [- n I( C. M3 `/ W

% B0 r% W! x$ V4 V9 t; x<3>设置队列日志(本步骤采用系统默认设置),点 "下一步":
. }, l: t- t. B' i: V7 h+ m. w6 @4 ^) @; }7 R1 Q7 b: A
图12
% Q5 ^1 K- K1 w7 g! }: X设置队列日志 $ l0 R3 [7 [! I, G; Y) i" {& [

2 \* `1 D" A' x8 T<4>启动队列管理器,创建服务器连接通道,允许在 TCP/IP上进行队列管理器的远程管理,点击"下一步":
6 Q3 R7 ~4 N4 W( R0 [# W+ s# J7 n8 q4 t+ L* r0 I
图13 创建服务器连接通道 ! k0 {1 M& G/ [
 1 Y; V+ v5 G1 p3 {7 b. L4 N7 R/ w
<5>设置队列管理器 QM_JACK的侦听端口:8927(用户可以根据需要自行更改端口号),点击"完成"。 ! o7 ~( ~ [8 Q' h- X& L
$ W y$ D7 m! f6 R4 }0 a 图 14
+ @# K0 J; A% m; H设置队列管理器QM_JACK的侦听端口 / v- l( _9 X. o% m6 [) q

4 ^. F0 ^" ^1 r' S<6>系统进入等待界面: . j2 q/ g( {1 ^; C
, C* K$ G. ~5 M' s 图 15
" N# b7 w+ d( [. L系统等待界面
. K% ], v; S) W4 p! c" m [: x
- j6 `/ |: u6 {! h% W$ G<7>队列管理器 QM_JACK创建成功 * U+ G" T1 Q& ?, m x0 g
+ O* w$ i& L+ p& p 图 16 & f" Y) ]" `$ L* u/ S2 X' \" O
系统队列管理器QM_JACK创建成功
0 M9 }! W/ I8 t9 L 7 C- C2 R: b: j$ d( Y% Z, W
3)在 QM_JACK下创建名为"QUEUE_RECV"和"QUEUE_REPLY"的本地队列(客户可以根据自己的需求随意更改本地队列的名字和数量,这里创建这两个本地队列只是为之后的MQ_Tuxedo项目作准备): / a! G& ]3 y1 W% s) ?% c& U8 d5 P
5 e5 R5 u, _/ j- `
图17 定义本地队列 # v5 j* _) H7 B5 C; q- A
4 T g I7 Y* w
/ w; y, q4 d! G
9 t6 ~) X% @" } H$ s
图18 定义本地队列
( |! P6 i y' G2 }/ N( U0 H% n1 N 设置队列名后其他属性全为系统默认值,点击 "确定"。 4)在 QM_JACK下创建名为"CNN_JACK"的服务器通道。
0 V1 a) a! K# s/ K2 o' ~2 S7 K7 u; R 图 19
- ]6 j+ A' v3 H3 b7 Q4 t& E创建服务器连接通道
! V7 Z3 m% a) F* J) l5 u7 r, f 1 k. S* _3 s3 S; D( ^( @5 A% y
$ F9 O* F# K2 l- {9 B4 L k8 L 图20 创建服务器连接通道
; `3 V& }' b: M( ]; k0 c9 p* L) i 通道名称设为 CNN_JACK,其他选项保留为系统默认设置,点击"确定"。 5)在 MQ服务器端的计算机用户中添加MQ客户端所在计算机的系统用户。比如我的MQ客户端被Suse , L) }3 S) Q$ y* L8 g8 E. g
Linux下的root用户使用,那么,我们就需要在MQ的服务端(也就是Windows 3 v; l4 h3 b E4 m1 W$ y, m: [5 t6 C
xp系统中添加名为"root"的用户)所在的计算机系统中添加名为"root"的用户。具体步骤如下: <1>点击 "开始"->"控制面板"->"计算机管理"->"系统工具"->"本地用户和组"->"用户",点右键,选"新用户",如下图所示: 0 z( x& f/ D2 h3 Q1 k
图21
- ?8 ?7 o% h. i创建系统用户 ! J4 C' `5 P0 y

# E% G6 |+ t/ m! Q0 y<2>创建新用户: root(注意:这里的用户名"root"是MQ客户端所在系统的用户名,用户要根据具体情况进行修改)
/ ?2 `1 B% I% U" q6 ]# v 图22 创建系统用户$ R8 @4 B9 Y7 g& l; c% f- S

随意设置一个有效密码,选中密码永不过期,点击 "创建"。 <3>将新用户加入 mqm组(注意:这里的mqm组是我们安装完MQ
4 `2 M$ X( ` C1 X% ?! V$ RServer后系统自动创建的)。具体操作如下: 4 u5 u- q8 H1 n9 ^ h8 H
图23 # B o& `4 `+ c$ W5 u. |
设置系统用户所在组
4 E2 f/ W* J' q% ^! |3 O7 O9 _. d 点击 "属性": ( A1 B/ F: y3 u2 Z# I; K: V; y
图24 设置系统用户所在组
# {4 w7 [% C8 ^& C2 I4 Q3 Y 点击 "添加": ! a, `3 k0 J8 b
图25
9 S) x6 \# r' \6 f8 E' ?设置系统用户所在组
$ ]" _, f2 N& F, I2 w5 u: y$ |1 s 输入对象名称: mqm,点击"确定":
( s8 c) ~2 | S& J; H 图26 设置系统用户所在组 $ s: m2 b9 e7 i! @$ U: f2 g) r0 c
 root用户被添入 mqm组中:
' ~6 H" d- S5 b0 X* ]" K. k$ x 图27 设置系统用户所在组
3 |+ h: y5 P6 e* g
4 w+ Q {" R4 ~% p/ f; L) U点击 "应用",点击"确定"。 重启机器。至此, MQ服务端的配置完成。 ! c' v/ C7 P5 u. Q9 J
|