-
IBM MQ
使用指南
网友:
awaterhit
发布于:
2007.03.15
10:12
(
共有条评论
)
查看评论
|
我要评论
IBM MQ
使用指南
随着计算机网络和分布式应用的不断发展,远程消息传递越来越成为应用系统中不可缺少的组成部分。
商业消息中间件的出现保证了消息传输的可靠性,高效率和安全性,同时
也减少了系统的开发周期。
目前应用最多的消息中间件产品为
IBM
MQSeries
。
本文就针对
p>
MQ
的基本操作与配置进行详细的阐述,希望对读者有所帮助。
p>
一.
MQ
p>
基本操作
MQ
中有几个很重要的组件:队列管理器(
QueueManage
r
)、队列(
Queue
)和通道(<
/p>
Channel
)。其
基本的操作方法如
下:
创建队列管理器
crtmqm
–
q
QMgrName
-q
是指创建缺省的队列管理器
删除队列管理器
dltmqm QmgrName
启动队列管理器
strmqm QmgrName
如果是启动默认的队列管理器,可以不带其名字
停止队列管理器
endmqm QmgrName
受控停止
endmqm
–
i
QmgrName
立即停止
endmqm
–
p
QmgrName
强制停止
显示队列管理器
dspmq
–
m QmgrName
运行
MQSeries
命令
runmqsc
QmgrName
如果是默认队列管理器,可以不带其名字
往队列中放消息
amqsput QName QmgrName
如果队列是默认队列管理器中的队列,可以不带其队列管理器
的名字
从队列中取出消息
amqsget QName QmgrName
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
启动通道
runmqchl
–
c
ChlName
–
m QmgrName
启动侦听
runmqlsr
–
t TYPE
–
p PORT
–
m QMgrName
停止侦听
endmqlsr -m QmgrName
MQSeries
命令
定义死信队列
DEFINE QLOCAL
(
p>
QNAME
)
D
EFPSIST
(
YES
)
REPLACE
设定队列管理器的死信队列
ALTER QMGR DEADQ
(
QNAME
)
定义本地队列
DEFINE QL
(
QNAME
p>
)
REPLACE
定义别名队列
DEFINE QALIAS(QALIASNAME)
TARGQ(QNAME)
远程队列定义
DEFINE QREMOTE
(
QR
NAME
)
+
RNAME
(
AAA
)
RQMNAME
(
QMGRNAME
)
+
XMITQ
(
QTNAME
)
定义模型队列
DEFINE QMODEL
(
p>
QNAME
)
D
EFTYPE
(
TEMPDYN
)
p>
定义本地传输队列
DEFINE QLOCAL(QTNAME) USAGE(XMITQ)
DEFPSIST(YES) +
INITQ
(
)
+
PROCESS(PROCESSNAME)
REPLACE
创建进程定义
DEFINE PROCESS
(<
/p>
PRONAME
)
+
DESCR
(
‘STRING’
)
+
APPLTYPE
(
WINDOWSNT
)
+
APPLICID
(
’
runmqchl
-c SDR_TEST -
m QM_
TEST’
)
其中
APPLTYPE
的值可以是:
CICS
、
UNIX
、
WINDOWS
、
WINDOWSNT
等
创建发送方通道
DEFINE CHANNEL
(
SD
RNAME
)
CHLTYPE
(
SDR
)
+
CONNAME
(
< br>‘100.100.100.215(1418)’
)
XMITQ
(
QTNAME
)
REPLACE
其中
CHLTYPE
可以是:
SDR
、
SVR
、
p>
RCVR
、
RQSTR
、
CLNTCONN
、
SVRCO
NN
、
CLUSSDR
和
CLUSRCVR
。
创建接收方通道
DEFINE
CHANNEL
(
SDR_
TEST
)
CHLTYPE
(
RCVR
)
REPLACE
创建服务器连接通道
DEFINE CHANNEL
(
SV
RCONNNAME
)
CHLTYP
E
(
SVRCONN
)
REPLACE
显示队列的所有属性
DISPLAY QUEUE
(
QNA
ME
)
[ALL]
显示队列的所选属性
DISPLAY QUEUE
(
p>
QNAME
)
DESCR GET PUT
DISPLAY QUEUE
(
QNA
ME
)
MAXDEPTH CURDEPTH
显示队列管理器的所有属性
DISPLAY QMGR [ALL]
显示进程定义
DISPLAY PROCESS
(
PRONAME
)
更改属性
ALTER QMGR
DESCR
(
‘NEW
DESCRIPTION’
)
ALTER QLOCAL
(
QNAM
E
)
PUT
(
DISABLED
)
ALTER QALIAS
(
QNAME
)
TA
RGQ
(
TARGQNAME
)
删除队列
DELETE QLOCAL
(
p>
QNAME
)
DELETE QREMOTE
(
QR
NAME
)
清除队列中的所有消息
CLEAR QLOCAL
(
QNAM
E
)
二.配置一个能够通信的远程连接
以上讲述了
MQ
的基本命令操作,但只
知道这些是没有实际意义的。
MQ
的最终目的是实现远程通信,
所
以下面就以一个具体的例子来说明如何实现远程连接。
这个例
子的目的是建立可以实现消息传递的一对
MQ
服务器,它们分别
基于
NT
和
UNIX
< br>平台。
首先在
NT
端建一队列管理器
crtmqm
–
q QM_NT
启动队列管理器
strmqm QM_NT
p>
运行
MQ
控制台命令
runmqsc QM_NT
创建死信队列
DEFINE QL() DEFPSIST(YES) REPLACE
更改队列管理器属性,设置其死信队列
ALTER QMGR DEADQ
(
)
创建进程定义
DEFINE PROCESS
(
P_
NT
)
+
APPLTYPE
(
WINDOWSNT
)
+
APPLICID
(
’
runmqchl
-c SDR_NT -m
QM
_NT’
)
创建本地传输队列
DEFINE QL(QT_NT)
USAGE(XMITQ) DEFPSIST(YES) +
INITQ
(
)
< br>+
PROCESS(P_NT) REPLACE
创建远程队列定义,对应于
UNIX
机器上的本地队列
Q_UNIX
,传输
队列为
QT_NT
DEFINE
QREMOTE
(
QR_NT
)
+
RNAME
(
Q_UNIX
)
RQMNAME
(
QM_UNIX
)
+
XMITQ
< br>(
QT_NT
)
创建发送方通道,其传输队列为
QT
_NT
,远程主机地址为
10.10.10.2
,侦听端口为
1414
DEFINE CHANNEL
(
SD
R_NT
)
CHLTYPE
(
SDR
)
+
CONNAME
(
< br>‘10.10.10.2(1414)’
)
XMITQ
(
QT_NT
)
REPLACE
创建服务器连接通道
DEFINE CHANNEL
(
S_
NT
)
CHLTYPE
(
SVRCONN
)
REPLACE
在
UNIX
端创建队列管理器
crtmqm
–
q QM_UNIX
启动队列管理器
strmqm QM_UNIX
添加侦听程序
修改
/etc/services
文件,加入一行:
MQSeries 1414/tcp
#MQSeries channel listener
修改
/etc/
文件,加入一行(启动侦听程序)
MQSeries stream tcp
nowait mqm /usr/lpp/mqm/bin/amqcrsta amqcrsta
–
m QM_UNIX
运行以下命令,以使修改起作用
refresh
–
s inetd
运行
MQ
控
制台命令
runmqsc
QM_UNIX
创建死信队列
DEFINE QL() DEFPSIST(YES)
REPLACE
更改队列管理器属性,设置其死信队列
ALTER QMGR DEADQ
(
)
创建接收方通道,其名字必须与远程发送方相同
DEFINE CHANNEL
(<
/p>
SDR_NT
)
CHLTYPE
(
RCVR
)
REPLACE
创建本地队列
DEFINE QL
(
Q_UNIX<
/p>
)
DEFPSIST(YES)
REPLACE
创建服务器连接通道
DEFINE CHANNEL
(
S_
UNIX
)
CHLTYPE
(
SVRCONN
)
REPLACE
经过以上操作之后
,远程连接的配置工作完成。接下来需要验证配置是否正确。
在
NT
端启动发送方通道
runmqchl
–
c SDR_NT
–
m QM_NT
或
start
chl(SDR_NT)
从
NT<
/p>
端发送消息到
UNIX
端
amqsput QR_NT QM_NT
在
UNIX
端接收消息
/usr/mqm/samp/bin/amqsget Q_UNIX
QM_UNIX
若能收到消息,说明配置成功。
<
/p>
另,
在
NT
下一
般情况下在建立队列管理器时会自动建立侦听器,
启动队列管理器时则会自动启动侦听程
序。
当然也可以手动配置侦听程序。
修改
winntsystem32driversetcser
vices
文件,在文件中加入一行:
MQSeries 1414/tcp #MQSeries
channel listener
启动侦听程序
runmqlsr
–
t tcp
–
p 1414
–
m QM_NT
以上说明了怎样建立简单的单向传输网络。
消息从
NT
端传送到
UNIX
端。
建立从
UNIX
端到
NT
p>
端的远程
连接和以上相仿,要建立双向的传输网络也是同样的道理。
三.配置
JNDI
用
JMS
实现消息的发送和接收时,经常会用到
JNDI
。因为
JNDI
这种方式比较灵活,对于编程也比较简
单。
在安装了
MQSeries
Client for Java
之后,在
javabin
p>
目录下找到
文件。该文件主
要用来说明
Context
的存储方式及存储地址,对
应于文件中的两个参数
INITIAL_CONTEXT_FACTORY
和
PROVIDER_URL
。典型的
文件内容如下:
#INITIAL_CONTEXT_FACTORY=xFactory
INITIAL_CONTEXT_FACTORY=ontextFactory
#INITIAL_CONTEXT_FACTORY=ia
lContextFactory
#
#PROVIDER_URL=ldap://polaris/o=ibm,c=us
PROVIDER_URL=file:/d:/temp
#PROVIDER_URL=iiop://localhost/
#
SECURITY_AUTHENTICATION=none
INITIAL_CONTEXT_FACTORY
表示
JMSAdmin Tool
使用的服务提
供商。当前有三种受支持的值。
xFactory
用于
LDAP
,如果使用它就必须安装一个
LDAP
服务器。
ontextFactory
用于文件系统上下文,
它只需要使用者提供存放上下文
的文件路
径。
ialContextFactory
是专门为
websphere
提供的,它需要和
websp
here
的
CosNaming
资源库
一起使用。
-
-
-
-
-
-
-
-
-
上一篇:经典化学反应500个
下一篇:美国各种公路限重一览表