Linux上MQ6的安装配置
recis1服务器和recis2服务器操作完全相同:
1 首先mq-install-files这个文件夹拷贝到recis1服务器和recis2服务器上。
比如我拷贝到:/opt/mq-install-files
如果在安装过程需要一些补丁程序,你只要按照提示去下载这些文件然后再安装它们。不过我已提供1个文件mozilla-1.7.3-18.EL4.i386.rpm 。
2 打开一个新窗口,以root用户执行cd命令进入到文件所在的目录:
cd /opt
chmod –R 777 mq-install-files
cd mq-install-files
然后按照顺序执行命令。
rpm -ivh mozilla-1.7.3-18.EL4.i386.rpm
mqlicense.sh -accept
rpm -vih MQSeriesRuntime-6.0.0-0.i386.rpm
rpm -vih MQSeriesServer-6.0.0-0.i386.rpm
rpm -vih MQSeriesJava-6.0.0-0.i386.rpm
rpm -vih MQSeriesIES30-6.0.0-0.i386.rpm
rpm -vih MQSeriesConfig-6.0.0-0.i386.rpm
rpm -vih MQSeriesSDK-6.0.0-0.i386.rpm
rpm -vih MQSeriesClient-6.0.0-0.i386.rpm
rpm -vih MQSeriesTXClient-6.0.0-0.i386.rpm
#rpm -vih MQSeriesKeyMan-6.0.0-0.i386.rpm
rpm -vih MQSeriesMan-6.0.0-0.i386.rpm
rpm -vih MQSeriesSamples-6.0.0-0.i386.rpm
rpm -vih MQSeriesFTA-6.0.0-0.i386.rpm
#rpm -vih MQSeriesMsg_de-6.0.0-0.i386.rpm
#rpm -vih MQSeriesMsg_es-6.0.0-0.i386.rpm
#rpm -vih MQSeriesMsg_fr-6.0.0-0.i386.rpm
#rpm -vih MQSeriesMsg_it-6.0.0-0.i386.rpm
#rpm -vih MQSeriesMsg_ja-6.0.0-0.i386.rpm
#rpm -vih MQSeriesMsg_ko-6.0.0-0.i386.rpm
#rpm -vih MQSeriesMsg_pt-6.0.0-0.i386.rpm
#rpm -vih MQSeriesMsg_Zh_TW-6.0.0-0.i386.rpm
rpm -vih MQSeriesMsg_Zh_CN-6.0.0-0.i386.rpm
3 配置环境变量:
在/etc/profile文件中加入如下信息,然后重新启动系统:
# mq
export CLASSPATH=/opt/mqm/java/lib:$CLASSPATH
export PATH=/opt/mqm/java/lib:$PATH
export LD_LIBRARY_PATH=/opt/mqm/java/lib:$LD_LIBRARY_PATH
4 配置用户权限。
默认情况下MQ6只有mqm该用户可以创建mq管理器和队列。 现在我们系统root用户也具有该权限,那么我们需要把root用户添加到mqm群组中。
如果你熟悉命令就是使用命令,如果不熟悉命令就按照如下方式加入:
通过菜单打开如下:
找到mqm群组,打开群组用户页,将root用户选中。
确定,关闭用户管理器。然后注销系统或者重新启动系统,以使设置生效。
4下面开始创建应用程序所需要的mq队列。
4.1将create-MQ-queue文件夹拷贝的/opt/deploy-recis/create-MQ-queue
以root用户,然后使用vi zunyi.tst命令,编辑zunyi.tst文件。文件内容如下所示:
*本地错误队列、死信队列,QMGR相关配置
def ql(ERRMSG) maxdepth(10000) maxmsgl(4194304) defpsist(yes) replace
def ql(DEADQ) defpsist(yes) maxdepth(20000) replace
alter qmgr deadq(DEADQ)
alter qmgr CCSID(819)
*定义本地接收队列
def ql(FROMCCPC_1) maxdepth(10000) defpsist(yes) replace
def ql(FROMCCPC_2) maxdepth(10000) defpsist(yes) replace
*定义被测试商业银行的远程队列,本地传输队列及通道
*修改ip地址为本分中心的ip地址,修改999703031318为被测试的虚拟票交所编号(3处),修改7019为本分中心号(7处)
def qr(TOCCPC_1) rname(7019_1) rqmname(QMC7019) xmitq(QMCCIS) defpsist(yes) replace
def qr(TOCCPC_2) rname(7019_2) rqmname(QMC7019) xmitq(QMCCIS) defpsist(yes) replace
def ql(QMCCIS) usage(XMITQ) defpsist(YES) maxdepth(50000) trigger trigtype(FIRST) trigdata(999703031318.7019) initq(SYSTEM.CHANNEL.INITQ) replace
def chl(999703031318.7019) chltype(SDR) discint(1800) conname('9.152.47.66(1417)') xmitq(QMCCIS) trptype(tcp) shortrty(10000) shorttmr(30) longtmr(300) longrty(999999999) batchsz(50) replace
def chl(7019.999703031318) chltype(rcvr) trptype(tcp) replace
DEFINE CHANNEL('SYSTEM.ADMIN.SVRCONN') CHLTYPE(SVRCONN) mcauser('mqm') REPLACE
*定义并启动监听器,1417为本地MQ队列端口号
def listener(QMCIS) TRPTYPE(TCP) PORT(1417) CONTROL(STARTONLY) BACKLOG(0) replace
start listener(QMCIS)
7019为贵阳分中心
999703031318是遵义商业银行那么虚拟票交所号
9.152.47.66(1417)为分中心的地址和端口号,如果以后发生变化,只要按照实际情况修改就可以拉
修改完毕后,按esc键,然后输入:wq,保存退出文件。
然后再命令窗口输入如下命令:
crtmqm -lf 16384 -lp 5 -ls 2 QMCIS
strmqm QMCIS
runmqsc QMCIS < zunyi.tst
至此资源管理器以及队列都已建立起来。
要启动mq使用命令:
strmqm QMCIS
关闭mq使用命令:
endmqm QMCIS
5 远程访问mq
我们在linux上安装的mq没有界面,不容易查看是否有消息,当然如果你熟悉mq命令,
可以不进行远程管理Mq。
首先在windows安装一个mq。
在windows的用户管理中把当前系统的登陆用户添加到mqm群组中,重新启动操作系统,使刚才的配置
生效。
然后打开window上的mq资源管理器,按照如下界面操作右击队列管理器,选择显示/隐藏队列管理器
选择显示/隐藏。。。
选择“添加”按钮,在对列管理器输入QMCIS
单机下一步,在如下界面输入:
如果是连接recis1服务器ip为168.168.88.168 端口是1417
如果是连接Recis2服务器为:168.168.88.163端口是1417
单击完成,这样就可以连接到远程linux上的mq拉。
如果远程没有启动mq,你要启动后Window上的mq管理器才能连接。连接完毕
备注:
要想远程管理:首先把windows上的当前用户加入mqm群组。
然后创建远程管理队列:
DEFINE CHANNEL('SYSTEM.ADMIN.SVRCONN') CHLTYPE(SVRCONN) mcauser('mqm') REPLACE
2 一些常见mq命令如下,其中红色标示的是我们常用的:
常用命令
创建队列管理器
crtmqm –q QMgrName
比如:crtmqm -lf 16384 -lp 5 -ls 2 QMCIS
启动队列管理器
strmqm QmgrName
比如:strmqm QMCIS
-q是指创建缺省的队列管理器
删除队列管理器
dltmqm QmgrName
bi比如:dltmqm QMCIS
如果是启动默认的队列管理器,可以不带其名字
停止队列管理器
endmqm QmgrName 受控停止
endmqm –i QmgrName 立即停止
endmqm –p QmgrName 强制停止
比如:endmqm QMCIS
显示队列管理器
dspmq –m QmgrName
运行MQSeries命令
runmqsc QmgrName
如果是默认队列管理器,可以不带其名字
往队列中放消息
amqsput QName QmgrName
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
从队列中取出消息
amqsget QName QmgrName
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
启动通道
runmqchl –c ChlName –m QmgrName
启动侦听
runmqlsr –t TYPE –p PORT –m QmgrName
比如:runmqlsr –t tcp –p 1417 –m QMCIS
停止侦听
endmqlsr -m QmgrName
比如:endmqlsr –m QMCIS
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)+
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
DEFINE CHANNEL(SVRCONNNAME) CHLTYPE(SVRCONN) mcauser(username) REPLACE
比如:
DEFINE CHANNEL('SYSTEM.ADMIN.SVRCONN') CHLTYPE(SVRCONN) mcauser('mqm') REPLACE
显示队列的所有属性
DISPLAY QUEUE(QNAME) [ALL]
显示队列的所选属性
DISPLAY QUEUE(QNAME) DESCR GET PUT
DISPLAY QUEUE(QNAME)MAXDEPTH CURDEPTH
显示队列管理器的所有属性
DISPLAY QMGR [ALL]
1 如果我安装的mq损害,我如何办??
以root用户身份新开一个命令窗口,执行如下命令:
rpm -e MQSeriesMsg_de-6.0.0-0
rpm -e MQSeriesMsg_es-6.0.0-0
rpm -e MQSeriesMsg_fr-6.0.0-0
rpm -e MQSeriesMsg_it-6.0.0-0
rpm -e MQSeriesMsg_ja-6.0.0-0
rpm -e MQSeriesMsg_ko-6.0.0-0
rpm -e MQSeriesMsg_pt-6.0.0-0
rpm -e MQSeriesMsg_Zh_CN-6.0.0-0
rpm -e MQSeriesMsg_Zh_TW-6.0.0-0
rpm -e MQSeriesClient-6.0.0-0
rpm -e MQSeriesJava-6.0.0-0
rpm -e MQSeriesSDK-6.0.0-0
rpm -e MQSeriesConfig-6.0.0-0
rpm -e MQSeriesFTA-6.0.0-0
rpm -e MQSeriesIES30-6.0.0-0
rpm -e MQSeriesTXClient-6.0.0-0
rpm -e MQSeriesKeyMan-6.0.0-0
rpm -e MQSeriesMan-6.0.0-0
rpm -e MQSeriesSamples-6.0.0-0
rpm -e MQSeriesServer-6.0.0-0
rpm -e MQSeriesTXClient-6.0.0-0
rpm -e MQSeriesRuntime-6.0.0-0
就可以完成对mq的卸载。