WebSphere MQ程序设计初探
2008-01-05 08:31:31 来源:WEB开发网 IBM的WebSphere MQ产品可以用来方便地实现分布式异构系统之间的消息传递。对于大型的分布式系统,使用MQ进行数据通信是可以说是非常有效的,而且适用于异构环境(如NT和多种UNIX之间通信)。本文主要介绍:MQ的核心组件介绍、MQ环境的搭建以及利用java对MQ队列治理器的操作的程序设计,希望能起到抛砖引玉的作用。
第一部分、MQ的核心组件介绍
MQ的核心组件包括:队列治理器(QueueManager)、队列(Queue)、通道(Channel)、消息(Message)和集群(Cluster)。
队列治理器(QueueManager)提供队列服务,治理属于该队列治理器的队列和通道等所有MQ对象。
队列(Queue)是用于存储消息(Message)的数据结构,有四种类型:本地队列(LocalQueue)、远程队列(RemoteQueue)、别名队列(AliasQueue)和模型队列(ModelQueue),最常用到的是本地队列和远程队列。
通道(Channel)是提供了从一个队列治理器到其他队列治理器的数据传输路径。通道类型有若干种,其中常用的是发送方通道(SenderChannel)和接收方通道(ReceiverChannel)。
消息(Message)是应用程序之间传递的一系列字节数据,MQ传递的消息有两部分组成:消息描述符(MessageDescriptor)和应用数据(applicationData)。默认最大传递的消息大小是4MB,可以根据需要进行设置,最大可到100MB。
集群(Cluster)是分布式网络上的多个队列治理器的集合。(本文不涉及集群的具体内容)
第二部分、MQ环境的搭建
本文搭建的环境以Windows平台为例,涉及其他平台的请读者查阅相关文档。
具体搭建步骤:
1、根据安装向导安装IBM WebSphere MQ v5.3软件,安装路径为:D:\IBM\WebSphere MQ。
2、安装成功后,请使用命令echo %classpath%检查classpath变量中是否已经把D:\IBM\WebSphere MQ\Java\lib下面的jar文件包含进来,如没有包括请进行手工添加,本文要用到的2个要害的是:com.ibm.mq.jar和connector.jar。使用echo %path%检查path变量中是否已经把D:\IBM\WebSphere MQ\bin包含进来,如没有包括请进行手工添加。
3、创建一个配置文本文件,文件名为config.txt,内容如下(请读者到附件下载):
* 更改QM的字符集编码(CCSID)
ALTER QMGR FORCE CCSID(1381)
* 定义本地队列
DEFINE QLOCAL('LQ_SAMPLE') REPLACE +
USAGE(normal) +
DEFPSIST(YES)
4、创建一个批处理文件,文件名为mqsetup.bat,内容如下(请读者到附件下载):
rem 创建缺省队列治理器,拥有100个句柄,使用线性循环日志,容量为 1024 × 4 K/文件,主文件10个,辅文件20个
echo Creating QM_SAMPLE
crtmqm -t 5000 -h 100 -lc -lf 1024 -lp 10 -ls 20 -q QM_SAMPLE
rem 设置cpu个数为1
setmqcap 1
rem 启动队列治理器
echo Starting Queue Manager
strmqm QM_SAMPLE
rem 从配置文件中读入初始化命令
echo Running config
runmqsc QM_SAMPLE < config.txt
rem 停止队列治理器
amqmdain end QM_SAMPLE
rem 将队列治理器设置为自动启动
amqmdain auto QM_SAMPLE
rem 创建队列侦听器,使用1414端口
amqmdain crtlsr QM_SAMPLE -t TCP -p 1414
rem 修改MQ参数,采用AdoptNewMCA方式
amqmdain reg QM_SAMPLE -c add -s Channels -v AdoptNewMCA=ALL
rem 修改MQ参数,采用KeepAlive方式
amqmdain reg QM_SAMPLE -c add -s TCP -v KeepAlive=Yes
rem 重新启动队列治理器
amqmdain start QM_SAMPLE
5、运行mqsetup.bat,检查运行结果输出是否无误,如有错误,请仔细根据上述步骤进行检查并纠错。
6、在命令窗口中,输入dspmq,看是否显示如下结果:
QMNAME(QM_SAMPLE) STATUS(正在运行)
7、在命令窗口中,输入runmqsc回车,进入mq交互操作环境,输入display queue(LQ_SAMPLE),看是否显示如下结果:
AMQ8409: 显示队列细节。
DESCR(WebSphere MQ Default Local Queue)
PROCESS( ) BOQNAME( )
INITQ( ) TRIGDATA( )
CLUSTER( ) CLUSNL( )
QUEUE(LQ_SAMPLE) CRDATE(2006-10-31)
CRTIME(16.17.01) ALTDATE(2006-10-31)
8、输入end退出mq交互操作环境。
自此,NT平台上的最基本的MQ环境搭建完成了。
- ››WebSphere Application Server 7.0 XML Feature P...
- ››WebSphere 反向投资者: 解决 WebSphere Applicati...
- ››WebSphere sMash 的创新应用,第 2 部分: 借助包装...
- ››Websphere MQ v6集群的负载均衡新功能
- ››WebSphere Process Server V6.0.2 集群,第 2 部分...
- ››WebSphere Process Server V6.0.2 集群,第 1 部分...
- ››WebSphere MQ性能调优浅谈
- ››WebSphere配置资源库管理
- ››WebSphere中的SSL/TLS:用法、配置和性能
- ››websphere ejb远程/本地调用总结
- ››WebSphere Application Server对SIP的支持
- ››WebSphere Process Server V6 体系结构概述
更多精彩
赞助商链接