`
izuoyan
  • 浏览: 9295469 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

介绍关于IBM MQSeries的使用指南

阅读更多

随着计算机网络和分布式应用的不断发展,远程消息传递越来越成为应用系统中不可缺少的组成部分。商业消息中间件的出现保证了消息传输的可靠性,高效率和安全性,同时也减少了系统的开发周期。目前应用最多的消息中间件产品为IBM MQSeries。本文就针对MQ的基本操作与配置进行详细的阐述,希望对读者有所帮助。
  
  一.MQ基本操作
  
  MQ中有几个很重要的组件:队列管理器(QueueManager)、队列(Queue)和通道(Channel)。其基本的操作方法如下:
  
  创建队列管理器
  crtmqm ?q QMgrName
  -q是指创建缺省的队列管理器
  
  删除队列管理器
  dltmqm QmgrName
  
  启动队列管理器
  strmqm QmgrName
  如果是启动默认的队列管理器,可以不带其名字
  
  停止队列管理器
  endmqm QmgrName 受控停止
  
  endmqm ?i QmgrName 立即停止
  
  endmqm ?p QmgrName 强制停止
  
  显示队列管理器
  dspmq ?m QmgrName
  
  运行MQSeries命令
  runmqsc QmgrName
  如果是默认队列管理器,可以不带其名字
  
  往队列中放消息 中国网管论坛bbs.bitsCN.com
  amqsput QName QmgrName
  如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
  
  从队列中取出消息
  amqsget QName QmgrName
  如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
  
  启动通道
  runmqchl ?c ChlName ?m QmgrName
  
  启动侦听
  runmqlsr ?t TYPE ?p PORT ?m QMgrName
  
  停止侦听
  endmqlsr -m QmgrName
  
  MQSeries命令
  
  定义死信队列
  DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE
  
  设定队列管理器的死信队列
  ALTER QMGR DEADQ(QNAME)
  
  定义本地队列
  DEFINE QL(QNAME) REPLACE
  
  定义别名队列
  DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)
  
  远程队列定义
  DEFINE QREMOTE(QRNAME) +
  RNAME(AAA) RQMNAME(QMGRNAME) +
  XMITQ(QTNAME)
  
  定义模型队列
  DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN)
  
  定义本地传输队列
  DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) +
  INITQ(SYSTEM.CHANNEL.INITQ)+ 网管u家bitscn.net
  PROCESS(PROCESSNAME) REPLACE
  
  创建进程定义
  DEFINE PROCESS(PRONAME) +
  DESCR(‘STRING’)+
  APPLTYPE(WINDOWSNT)+
  APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’)
  其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等
  
  创建发送方通道
  DEFINE CHANNEL(SDRNAME) CHLTYPE(SDR)+
  CONNAME(‘100.100.100.215(1418)’) XMITQ(QTNAME) REPLACE
  其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。
  
  创建接收方通道
  DEFINE CHANNEL(SDR_ TEST) CHLTYPE(RCVR) REPLACE
  
  创建服务器连接通道
  DEFINE CHANNEL(SVRCONNNAME) CHLTYPE(SVRCONN) REPLACE
  
  显示队列的所有属性
  DISPLAY QUEUE(QNAME) [ALL]
  
  显示队列的所选属性
  DISPLAY QUEUE(QNAME) DESCR GET PUT
  DISPLAY QUEUE(QNAME)MAXDEPTH CURDEPTH
  
  显示队列管理器的所有属性
  DISPLAY QMGR [ALL]
  
  显示进程定义
  DISPLAY PROCESS(PRONAME)
   网管u家bitscn.net
  更改属性
  ALTER QMGR DESCR(‘NEW DESCRIPTION’)
  ALTER QLOCAL(QNAME) PUT(DISABLED)
  ALTER QALIAS(QNAME) TARGQ(TARGQNAME)
  
  删除队列
  DELETE QLOCAL(QNAME)
  DELETE QREMOTE(QRNAME)
  
  清除队列中的所有消息
  CLEAR QLOCAL(QNAME)
  
  二.配置一个能够通信的远程连接
  
  以上讲述了MQ的基本命令操作,但只知道这些是没有实际意义的。MQ的最终目的是实现远程通信,所以下面就以一个具体的例子来说明如何实现远程连接。这个例子的目的是建立可以实现消息传递的一对MQ服务器,它们分别基于NT和UNIX平台。
  
  首先在NT端建一队列管理器
  crtmqm ?q QM_NT
  
  启动队列管理器
  strmqm QM_NT
  
  运行MQ控制台命令
  runmqsc QM_NT
  
  创建死信队列
  DEFINE QL(NT.DEADQ) DEFPSIST(YES) REPLACE
  
  更改队列管理器属性,设置其死信队列
  ALTER QMGR DEADQ(NT.DEADQ)
  
  创建进程定义
  DEFINE PROCESS(P_NT)+
  APPLTYPE(WINDOWSNT)+
  APPLICID(’ runmqchl -c SDR_NT -m QM_NT’)
网管联盟bitsCN@com

  
  创建本地传输队列
  DEFINE QL(QT_NT) USAGE(XMITQ) DEFPSIST(YES) +
  INITQ(SYSTEM.CHANNEL.INITQ)+
  PROCESS(P_NT) REPLACE
  
  创建远程队列定义,对应于UNIX机器上的本地队列Q_UNIX,传输队列为QT_NT
  DEFINE QREMOTE(QR_NT)+
  RNAME(Q_UNIX) RQMNAME(QM_UNIX)+
  XMITQ(QT_NT)
  
  创建发送方通道,其传输队列为QT_NT,远程主机地址为10.10.10.2,侦听端口为1414
  DEFINE CHANNEL(SDR_NT) CHLTYPE(SDR)+
  CONNAME(‘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/inetd.conf文件,加入一行(启动侦听程序)
  MQSeries stream tcp nowait mqm /usr/lpp/mqm/bin/amqcrsta amqcrsta ?m QM_UNIX
   中国网管论坛bbs.bitsCN.com
  运行以下命令,以使修改起作用
  refresh ?s inetd
  
  运行MQ控制台命令
  runmqsc QM_UNIX
  
  创建死信队列
  DEFINE QL(UNIX.DEADQ) DEFPSIST(YES) REPLACE
  
  更改队列管理器属性,设置其死信队列
  ALTER QMGR DEADQ(UNIX.DEADQ)
  
  创建接收方通道,其名字必须与远程发送方相同
  DEFINE CHANNEL(SDR_NT) CHLTYPE(RCVR) REPLACE
  
  创建本地队列
  DEFINE QL(Q_UNIX) DEFPSIST(YES) REPLACE
  
  创建服务器连接通道
  DEFINE CHANNEL(S_UNIX) CHLTYPE(SVRCONN) REPLACE
  
  经过以上操作之后,远程连接的配置工作完成。接下来需要验证配置是否正确。
  
  在NT端启动发送方通道
  runmqchl ?c SDR_NT ?m QM_NT 或 start chl(SDR_NT)
  
  从NT端发送消息到UNIX端
  amqsput QR_NT QM_NT
  
  在UNIX端接收消息
  /usr/mqm/samp/bin/amqsget Q_UNIX QM_UNIX
  
  若能收到消息,说明配置成功。
  
  另,在NT下一般情况下在建立队列管理器时会自动建立侦听器,启动队列管理器时则会自动启动侦听程序。当然也可以手动配置侦听程序。
网管朋友网www_bitscn_net


  
  修改\winnt\system32\drivers\etc\services文件,在文件中加入一行:
  
  MQSeries 1414/tcp #MQSeries channel listener
  
  启动侦听程序
  runmqlsr ?t tcp ?p 1414 ?m QM_NT
  
  以上说明了怎样建立简单的单向传输网络。消息从NT端传送到UNIX端。建立从UNIX端到NT端的远程连接和以上相仿,要建立双向的传输网络也是同样的道理。
  
  三.配置JNDI
  
  用JMS实现消息的发送和接收时,经常会用到JNDI。因为JNDI这种方式比较灵活,对于编程也比较简单。
  在安装了MQSeries Client for Java之后,在\java\bin目录下找到JMSAdmin.config文件。该文件主要用来说明Context的存储方式及存储地址,对应于文件中的两个参数INITIAL_CONTEXT_FACTORY和PROVIDER_URL。典型的JMSAdmin.config文件内容如下:
  
  #INITIAL_CONTEXT_FACTORY=com.sun.jndi.ldap.LdapCtxFactory
  INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory
  #INITIAL_CONTEXT_FACTORY=com.ibm.ejs.ns.jndi.CNInitialContextFactory
  #
  #PROVIDER_URL=ldap://polaris/o=ibm,c=us
  PROVIDER_URL=file:/d:/temp
网管u家www.bitscn.net


  #PROVIDER_URL=iiop://localhost/
  #
  SECURITY_AUTHENTICATION=none
  
  INITIAL_CONTEXT_FACTORY表示JMSAdmin Tool使用的服务提供商。当前有三种受支持的值。com.sun.jndi.ldap.LdapCtxFactory用于LDAP,如果使用它就必须安装一个LDAP服务器。com.sun.jndi.fscontext.RefFSContextFactory用于文件系统上下文,它只需要使用者提供存放上下文的文件路径。com.ibm.ejs.ns.jndi.CNInitialContextFactory是专门为websphere提供的,它需要和websphere的CosNaming资源库一起使用。
  PROVIDER_URL表示会话初始上下文的URL,由JMSAdmin tool实现的所有JNDI操作的根。它和INITIAL_CONTEXT_FACTORY一一对应。
  
  ldap://hostname/contextname 用于LDAP
  file:[drive:]/path

分享到:
评论

相关推荐

    IBM MQSeries使用指南

    IBM MQSeries,也被称为IBM WebSphere MQ,是IBM推出的一款高效、可靠的消息中间件产品,它在分布式系统中扮演着至关重要的角色,确保了不同应用之间的数据交换安全、可靠且高效。本文将深入探讨IBM MQ的基本操作和...

    \IBM MQSeries 使用指南.pdf

    ### IBM MQSeries 使用指南知识点详解 #### 一、MQSeries简介 IBM MQSeries(现在称为IBM MQ)是一种消息中间件,用于支持分布式应用程序之间的安全、可靠的信息交换。它通过使用消息队列技术来确保消息从一个应用...

    IBM MQSeries使用指南.txt

    ### IBM MQSeries 使用指南 #### 一、引言 随着信息技术的发展,特别是在计算机网络和分布式应用领域的不断进步,远程消息传递已经成为现代应用系统中的关键组件之一。为了确保消息的可靠传输、提高传输效率并保障...

    MQSeries使用指南.doc

    IBM MQSeries,全称Message Queuing Series,是IBM推出的一款高效、可靠的消息中间件产品,广泛应用于分布式系统中,以确保消息的可靠传输、高效处理和安全存储。它通过提供异步通信机制,使得应用程序之间可以解耦...

    IBM MQSeries Workflow 安装指南 版本 3.2.1 (SH84-0584-04).pdf

    IBM MQSeries Workflow 安装指南 版本 3.2.1 (SH84-0584-04).pdf

    MQSeries 应用程序设计指南

    《MQSeries应用程序设计指南》是一本关于IBM MQSeries的权威技术文档,主要面向软件开发者和技术架构师,旨在介绍MQSeries的工作原理,并提供一系列实践指导,帮助读者理解如何利用MQSeries在不同环境中实现进程间的...

    IBM MQSeries Workflow Buildtime 入门 版本 3.2.1 (SH84-0582-04).pdf

    这份文档主要涉及IBM MQSeries Workflow Buildtime的基础介绍、构建时间环境及其与运行时环境的关系等内容。 ### IBM MQSeries Workflow Buildtime概述 IBM MQSeries Workflow Buildtime是一款用于设计和构建业务...

    IBM_MQ_使用指南

    ### IBM MQ 使用指南详解 IBM MQ,原名为IBM MQ Series,是IBM公司开发的一款高性能、高可靠性的消息中间件,广泛应用于企业级分布式系统中,用于处理和管理应用程序之间的消息传递。随着计算机网络和分布式应用的...

    IBMMQ 错误码表 PDF(完整)

    该文档的内容通常会包括关于如何使用错误码表的指南,错误码的分类,以及针对不同UNIX系统的特定信息。它为用户提供了深入理解MQ运行机制、诊断和解决故障的工具,对于维护和管理IBM MQ环境至关重要。 总之,IBM MQ...

    MQSeries Application Programming Guide

    ### MQSeries 应用程序编程指南知识点概览 #### 一、MQSeries 概述 - **MQSeries** 是由IBM公司开发的消息队列中间件(Message Queue Middleware),主要用于实现不同应用程序之间的通信与数据交换。 - **MQSeries*...

    MQSeries AIX 版 V5.1 手册

    《MQSeries AIX 版 V5.1 手册》是一部深入解析IBM MQ(原名MQSeries)在AIX操作系统上V5.1版本的权威指南。MQSeries,现称IBM WebSphere MQ,是IBM公司推出的一款企业级消息中间件,它在分布式系统中负责可靠的消息...

    IBM MQ编程模式中文版

    "IBM MQ编程模式中文版"是一份面向Java开发者的指南,旨在帮助他们理解和掌握如何利用MQSeries classes for Java进行有效的消息队列编程。 在IBM MQ的Java编程中,有几个核心概念和关键知识点: 1. **Message ...

    C#操作IBM Websphere MQ收发消息

    在IT行业中,IBM WebSphere MQ(以前称为IBM MQSeries)是一种流行的消息中间件,它允许应用程序之间通过异步通信交换数据。C#是.NET Framework的一部分,广泛用于开发Windows桌面应用和服务器应用。当我们需要在C#...

    MQSeries Classes for Java

    MQSeries Classes for Java 是一套为 Java 开发者提供的 API,用于与 IBM WebSphere MQ 进行交互。这套类库使得 Java 应用程序能够发送和接收消息,实现分布式系统中的消息传递功能。 #### 二、WebSphere MQ ...

    MQSeries v7.5(for linux x84_64)安装手册

    《MQSeries v7.5(for linux x84_64)安装手册》详细解析 本文档旨在指导用户在x86_64架构的Linux系统...遵循本手册提供的详细指南,可以在Linux x86_64平台上成功部署MQSeries,为分布式系统提供稳定的消息传递服务。

    IBM JAVA编程

    在IBM发布的关于JAVA编程的文档中,重点介绍了一些MQSeries编程流模式,这对于从事消息中间件开发的专业人士来说非常重要。 ##### 1.1 利用MQSeries编程 MQSeries是IBM提供的一款用于分布式系统间消息传递的中间件...

Global site tag (gtag.js) - Google Analytics