WebSphere MQ程序设计初探时间:2006-11-04 00:00 来源:bitsCN.com 字体:[大 中 小] IBM的WebSphere MQ产品可以用来方便地实现分布式异构系统之间的消息传递。对于大型的分布式系统,使用MQ进行数据通信是可以说是非常有效的,而且适用于异构环境(如NT和多种UNIX之间通信)。本文主要介绍:MQ的核心组件介绍、MQ环境的搭建以及利用JAVA对MQ队列管理器的操作的程序设计,希望能起到抛砖引玉的作用。 ### WebSphere MQ程序设计知识点详解 #### 一、MQ的核心组件介绍 MQ(Message Queuing)作为IBM的一款成熟的企业级消息中间件,在分布式系统中扮演着重要的角色。它支持多种平台间的异构通信,能够有效地解决分布式环境中消息的传递问题。 ##### 1. 队列管理器(QueueManager) - **定义**:队列管理器是MQ中的核心组件之一,负责管理队列、通道等MQ对象。 - **功能**: - 提供队列服务。 - 管理属于该队列管理器的所有队列和通道。 - 处理队列管理器之间的消息传递。 ##### 2. 队列(Queue) - **定义**:队列用于存储消息的数据结构。 - **类型**: - **本地队列(LocalQueue)**:存储在本机队列管理器中的队列。 - **远程队列(RemoteQueue)**:存储在远程队列管理器中的队列。 - **别名队列(AliasQueue)**:指向另一个队列的队列,常用于简化编程。 - **模型队列(ModelQueue)**:作为其他队列的模板。 ##### 3. 通道(Channel) - **定义**:通道是连接两个队列管理器之间的逻辑路径,用于数据传输。 - **类型**: - **发送方通道(SenderChannel)**:负责将消息从本地队列管理器发送到远程队列管理器。 - **接收方通道(ReceiverChannel)**:接收来自远程队列管理器的消息。 ##### 4. 消息(Message) - **定义**:消息是由一系列字节组成的,用于应用程序间的数据传递。 - **组成部分**: - **消息描述符(MessageDescriptor)**:包含消息的元数据,如消息类型、格式等。 - **应用数据(ApplicationData)**:实际的应用负载。 ##### 5. 集群(Cluster) - **定义**:集群是一组协同工作的队列管理器,它们共同完成特定的任务。 - **特点**: - 提高可用性和容错能力。 - 分布式环境下提高消息处理效率。 #### 二、MQ环境的搭建 搭建MQ环境时,通常涉及以下步骤: ##### 1. 安装WebSphere MQ - **步骤**: - 下载并安装IBM WebSphere MQ v5.3软件。 - 设置环境变量,确保`classpath`包含了必要的JAR文件(如`com.ibm.mq.jar`和`connector.jar`),并且`path`包含了`bin`目录。 ##### 2. 配置队列管理器 - **配置文件**:通过`config.txt`文件来配置队列管理器的基本属性,例如更改字符集编码、定义本地队列等。 - **命令示例**: ```plaintext * 更改 QM 的字符集编码(CCSID) ALTER QMGR FORCE CCSID(1381) * 定义本地队列 DEFINE QLOCAL('LQ_SAMPLE') REPLACE + USAGE(normal) + DEFPSIST(YES) ``` ##### 3. 执行配置脚本 - **批处理文件**:使用`mqsetup.bat`脚本来自动化执行队列管理器的创建、启动等操作。 - **命令示例**: ```plaintext rem 创建缺省队列管理器 echo Creating QM_SAMPLE crtmqm -t 5000 -h 100 -lc -lf 1024 -lp 10 -ls 20 -q QM_SAMPLE rem 启动队列管理器 echo Starting Queue Manager strmqm QM_SAMPLE ``` #### 三、利用JAVA对MQ队列管理器的操作程序设计 在使用JAVA进行MQ队列管理器的操作时,主要包括以下几个方面: ##### 1. 连接队列管理器 - 使用`com.ibm.mq.MQQueueManager`类建立与队列管理器的连接。 - 示例代码: ```java MQQueueManager qMgr = new MQQueueManager("QM_SAMPLE"); ``` ##### 2. 创建队列 - 使用`com.ibm.mq.MQQueue`类创建队列。 - 示例代码: ```java MQQueue queue = qMgr.accessQueue("LQ_SAMPLE", MQC.MQOO_INPUT_AS_Q_DEF); ``` ##### 3. 发送消息 - 使用`com.ibm.mq.MQMessage`类构建消息,并通过队列发送。 - 示例代码: ```java MQMessage msg = new MQMessage(); byte[] data = "Hello, MQ!".getBytes(); msg.write(data); queue.put(msg); ``` ##### 4. 接收消息 - 使用`get`方法从队列中接收消息。 - 示例代码: ```java MQMessage rcvMsg = new MQMessage(); queue.get(rcvMsg); byte[] data = new byte[rcvMsg.getMessageLength()]; rcvMsg.readFully(data); String message = new String(data); ``` #### 结论 本文详细介绍了WebSphere MQ的核心组件及其功能,并通过具体的实例演示了如何搭建MQ环境以及如何利用JAVA语言进行队列管理器的操作。通过这些内容的学习,读者可以更好地理解MQ的工作原理,并能够在实际项目中灵活运用这些技术。
- yjisxx2012-12-20很好 适合新手学习 推荐大家看看
- 粉丝: 4
- 资源: 22
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 适用于 Python 的 LINE 消息 API SDK.zip
- 适用于 Python 的 AWS 开发工具包.zip
- 适用于 Python 3 的 Django LDAP 用户身份验证后端 .zip
- 基于PBL-CDIO的材料成型及控制工程课程设计实践与改革
- JQuerymobilea4中文手册CHM版最新版本
- 适用于 Python 2 和 3 以及 PyPy (ws4py 0.5.1) 的 WebSocket 客户端和服务器库.zip
- 适用于 AWS 的 Python 无服务器微框架.zip
- 适用于 Apache Cassandra 的 DataStax Python 驱动程序.zip
- WebAPI-案例-年会抽奖.html
- 这里有一些基础问题和一些棘手问题的解答 还有hackerrank,hackerearth,codechef问题的解答 .zip