学习MQ(三) 一个实例
学习MQ(三) 一个实例。
现在有两台机器A和B,分别安装了MQ6.0,我要通过MQ进行A和B之间的双向通信。
我打算分两步,第一步:实现A到B的数据传输。
在A上:
1、创建队列管理器 QM_1001。
2、创建本地队列 LQ_1001
3、创建传输队列 XQ_1001
4、创建远程队列 RQ_1002
5、创建发送方通道 1001.1002
在B上:
1、创建队列管理器 QM_1002
2、创建本地队列 LQ_1002
3、创建接收方通道 1001.1002,名字必须与发送方通道相同。
4、创建侦听器,监听1414端口
这样,A到B的数据传输就可以了。
启动队列管理器QM_1001和QM_1002,启动B上的侦听器,A上启动发送方通道1001.1002,B上的接收方通道也会自动运行;
第二步:实现B到A的数据传输
在B上:
1、创建传输队列 XQ_1002
2、创建远程队列 RQ_1001
3、创建发送方通道 1002.1001
在A上:
1、创建接收方通道1002.1001
2、创建侦听器,侦听1414端口
启动A上的侦听器,启动B上的发送方通道1002.1001,这样A上的接收方通道会自动运行。
这样,由B到A的数据传输也能进行了。
这是我搞定的第一个例子,也是我学习MQ以来感觉有进步的一次。
下面是脚本。
在A上:
* 定义队列管理器
crtmqm -t 5000 -h 1000 -lc -lf 10240 -lp 30 -ls 32 -q QM_1001
*更改QM的字符集编码(CCSID)
ALTER QMGR FORCE CCSID(1381)
* 定义本地队列
DEFINE QLOCAL('LQ_1001') REPLACE +
USAGE(normal) +
DEFPSIST(YES)
* 定义传输队列
DEFINE QLOCAL('XQ_1001') REPLACE +
USAGE(XMITQ) +
DEFPSIST(YES) +
TRIGGER +
TRIGTYPE(FIRST) +
INITQ('SYSTEM.CHANNEL.INITQ') +
PROCESS('') +
TRIGDATA('1001.1002')
* 定义远程队列
DEFINE QREMOTE('RQ_1002') +
DEFPSIST(YES) +
RNAME('LQ_1002') +
RQMNAME('QM_1002') +
XMITQ('XQ_1001')
* 定义发送方通道
DEFINE CHANNEL('1001.1002') +
CHLTYPE(SDR) +
TRPTYPE(TCP) +
CONNAME('192.168.110.35(1414)') +
XMITQ('XQ_1001') +
DISCINT(0) +
SHORTTMR(30) +
SHORTRTY(999999999) +
LONGTMR(1200) +
LONGRTY(999999999)
* 定义接收方通道
DEFINE CHANNEL('1002.1001') +
CHLTYPE(RCVR) +
TRPTYPE(TCP)
* 启动队列管理器
strmqm QM_1001
* 启动侦听器
runmqlsr -m QM_1001 -t TCP -p 1414 &
在B上:
* 定义队列管理器
crtmqm -t 5000 -h 1000 -lc -lf 10240 -lp 30 -ls 32 -q QM_1002
*更改QM的字符集编码(CCSID)
ALTER QMGR FORCE CCSID(1381)
* 定义本地队列
DEFINE QLOCAL('LQ_1002') REPLACE +
USAGE(normal) +
DEFPSIST(YES)
* 定义传输队列
DEFINE QLOCAL('XQ_1002') REPLACE +
USAGE(XMITQ) +
DEFPSIST(YES) +
TRIGGER +
TRIGTYPE(FIRST) +
INITQ('SYSTEM.CHANNEL.INITQ') +
PROCESS('') +
TRIGDATA('1002.1001')
* 定义远程队列
DEFINE QREMOTE('RQ_1001') +
DEFPSIST(YES) +
RNAME('LQ_1001') +
RQMNAME('QM_1001') +
XMITQ('XQ_1002')
* 定义发送方通道
DEFINE CHANNEL('1002.1001') +
CHLTYPE(SDR) +
TRPTYPE(TCP) +
CONNAME('192.168.110.21(1414)') +
XMITQ('XQ_1002') +
DISCINT(0) +
SHORTTMR(30) +
SHORTRTY(999999999) +
LONGTMR(1200) +
LONGRTY(999999999)
* 定义接收方通道
DEFINE CHANNEL('1001.1002') +
CHLTYPE(RCVR) +
TRPTYPE(TCP)
* 启动队列管理器
strmqm QM_1002
* 启动侦听器
runmqlsr -m QM_1002 -t TCP -p 1414 &
剩下几个疑问没有明白
1、更改QM的字符集编码是做什么用的?
2、从资料上看到有个服务器传输通道,不知道是做什么用的?
学习MQ(三) 一个实例的更多相关文章
- tensorflow学习笔记三:实例数据下载与读取
一.mnist数据 深度学习的入门实例,一般就是mnist手写数字分类识别,因此我们应该先下载这个数据集. tensorflow提供一个input_data.py文件,专门用于下载mnist数据,我们 ...
- rabbit mq的一个实例,异步功能
简单的使用场景:消息队列的场景有:解耦,异步,削峰. 此例用的场景,异步 有时候会有请求消耗时间过长,不能老让用户等待返回结果,可以用消息队列来做异步实现,之前用过workmain等类似的异步,但不如 ...
- 逆向学习XXclient怎样仅仅执行一个实例
个人觉得学习分两种, 一种是当面请教和直接从书本网络中的资料学习. 其二就是看着令你惊叹的作品-顿悟. 什么?顿悟不了?那我们就一起来逆向学习吧!差点忘了,我并不打算提供Demo,这并不重要,难道你打 ...
- 让程序只运行一个实例(Delphi篇)(三种方法,其中使用全局原子的方法比较有意思)
Windows 下一个典型的特征就是多任务,我们可以同时打开多个窗口进行操作,也可以同时运行程序的多个实例,比如可以打开许多个资源管理器进行文件的移动复制操作.但有时出于某种考虑(比如安全性),我们要 ...
- JavaWeb学习之三层架构实例(三)
引言 通过上一篇博客JavaWeb学习之三层架构实例(二)我们基本上已经实现了对学生信息列表的增删改查操作(UI除外),但是不难看出,代码冗余度太高了,尤其是StudentDao这个类,其中的增删改查 ...
- LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS
LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163. ...
- Linux第三周学习总结——构造一个简单的Linux系统MenuOS
第三周学习总结--构造一个简单的Linux系统MenuOS 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/ ...
- [学习笔记]一个实例理解Lingo的灵敏性分析
一个实例理解Lingo的灵敏性分析 线性规划问题的三个重要概念: 最优解就是反应取得最优值的决策变量所对应的向量. 最优基就是最优单纯形表的基本变量所对应的系数矩阵如果其行列式是非 ...
- ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心
作者:Grey 原文地址:ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 很多程序往 ...
随机推荐
- UNIX网络编程——客户/服务器程序设计示范(五)
TCP预先派生子进程服务器程序,传递描述符 对预先派生子进程服务器程序的最后一个修改版本是只让父进程调用accept,然后把所接受的已连接套接字"传递"给某个子进程.这么做 ...
- 排列熵算法简介及c#实现
一. 排列熵算法简介: 排列熵算法(Permutation Entroy)为度量时间序列复杂性的一种方法,算法描述如下: 设一维时间序列: 采用相空间重构延迟坐标法对X中任一元素x(i)进行相空间 ...
- J2EE进阶(四)Spring配置文件详解
J2EE进阶(四)Spring配置文件详解 前言 Spring配置文件是用于指导Spring工厂进行Bean生产.依赖关系注入(装配)及Bean实例分发的"图纸".Java EE程 ...
- Android进阶(七)数据存储
Android 数据存储 1访问资源文件 直接将文件保存在设备的内部存储. 默认情况下,保存到内部存储的文件为私有的,其他应用程序不能访问它们,当用户卸载应用程序时,所保存的文件也一并删除. 1.1 ...
- 从JDK源码角度看并发锁的优化
在CLH锁核心思想的影响下,JDK并发包以CLH锁作为基础而设计,其中主要是考虑到CLH锁更容易实现取消与超时功能.比起原来的CLH锁已经做了很大的改造,主要从两方面进行了改造:节点的结构与节点等待机 ...
- Jeff Atwood:Google的头号UI问题
谷歌在用户界面上追求的"极简主义"是让人叹为观止的.但是,他们首页上有个问题一直让我困惑不解.要知道,这个页面可是每天都被下载几百万次哦: 真有人在使用"I'm Feel ...
- STL:map/multimap用法详解
map/multimap 使用map/multimap之前要加入头文件#include<map>,map和multimap将key/value当作元素,进行管理.它们可根据key的排序准则 ...
- Java Map 及相应的一些操作总结
Map是我们在开发的时候经常会用到的,大致有以下几个操作,其中putAll方法是针对集合而言的操作,故不再进行说明,下面请看一下常用的知识点吧,尤其是keySet和Values两个方法及相应值的获取方 ...
- 纸飞机AE小教程
- 学习tornado:介绍
前言 在python里面,有许多web framework.对于我来说,因为很长一段时间都在使用tornado,所以有了一些心得体会.虽然现在我的工作重点已经转向go了,但是我觉得还是有必要记录一下t ...