IBM-MQ双向通道创建脚本

主机一:创建QM_BK082队列管理器

QM_BK082.sh

#!/bin/bash

#================================参数配置区=============================
#发送方队列管理器名称
SndQmgrName=QM_BK082
#接收方队列管理器名称
RcvQmgrName=QM_CZ
#发送方的MQ主机名称和端口
SndHostName="20.198.49.140"
SndHostPort="9009"
#接收方的MQ主机名称和端口
RcvHostName="20.198.49.145"
RcvHostPort="9009"
#发送方本地接收队列
SndLocalQueue=QU.BK082.IN
#传输队列
TranQueue=QU.CZ.TRANS
#远程队列
RemoteQueue=QU.CZ.OUT
#发送通道
SndChl=BK082.CZ.O
#接收通道
RcvChl=CZ.BK082.O
#客户端连接通道
CnnChl=BK082.C
#监听器
Lsr=QM_BK082.LISTEN
#接收方本地接收队列
RcvLocalQueue=QU.CZ.IN
#发送方标识
NodeDesc=BK082

#设定外部接入机构内部使用的MQ队列管理器的日志存放路径,要求日志空间为1G
LogPath=/var/mqm/log
#MQ日志文件大小设置(单位:4KB)
LogFilePages=5120
#MQ 主日志文件最大数
LogPrimaryFiles=30
#MQ 辅助日志文件最大数
LogSecondaryFiles=20
#设定外部接入机构MQ队列管理器的授权用户
MqmUsr=mqm
#MQ字符集设置
CCSID=819
#MQ 的通信协议设置
TRPTYPE=TCP
#消息最大深度
MAXDEPTH=1000000
#消息最大长度
MAXMSGL=41943040
#脉冲信号间隔
HBINT=60
#短重试时间间隔
SHORTTMR=30
#消息压缩算法设置
COMPMSG=ZLIBHIGH
#设置队列管理器死信队列名称
DLQ=DLQ
#设置消息通道的断开连接时间间隔
DISCINT=0
#设置消息通道的加密算法
SSLPEER=
#================================参数配置区=============================

echo "停止监听"
echo "STOP LISTENER($Lsr)"
echo "停止发送通道"
echo "STOP CHANNEL($SndChl)"  | runmqsc $SndQmgrName

echo "停止同名队列管理器"
endmqm -i $SndQmgrName
echo "删除同名队列管理器"
dltmqm $SndQmgrName

echo "------ $SndQmgrName 创建开始 ------"

echo "创建队列管理器 $SndQmgrName "
crtmqm -lc -lf $LogFilePages -lp $LogPrimaryFiles -ls $LogSecondaryFiles $SndQmgrName
echo "启动队列管理器"
strmqm $SndQmgrName

runmqsc $SndQmgrName<<EOF

****关闭安全认证
ALTER QMGR CHLAUTH(DISABLED)

****设置队列管理器字符集
ALTER QMGR CCSID($CCSID) 

****创建及设置队列管理器的死信队列
DEFINE QLOCAL($DLQ) LIKE(SYSTEM.DEFAULT.LOCAL.QUEUE) USAGE(NORMAL) DEFPSIST(YES) MAXMSGL($MAXMSGL) MAXDEPTH($MAXDEPTH) REPLACE DESCR('Dead Letter Queue') 
ALTER QMGR DEADQ($DLQ) 

****设置队列管理器的消息最大长度  
ALTER QMGR MAXMSGL($MAXMSGL) 


****创建服务器连接通道
****DEFINE CHANNEL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE($TRPTYPE) MCAUSER('$MqmUsr') MAXMSGL($MAXMSGL) REPLACE 
DEFINE CHANNEL($CnnChl) CHLTYPE(SVRCONN) TRPTYPE($TRPTYPE) MCAUSER('$MqmUsr') MAXMSGL($MAXMSGL) REPLACE 

****接收对方报文的发送方本地队列
DEFINE QLOCAL($SndLocalQueue) LIKE(SYSTEM.DEFAULT.LOCAL.QUEUE) USAGE(NORMAL) REPLACE DEFPSIST(YES) MAXDEPTH($MAXDEPTH) MAXMSGL($MAXMSGL) DESCR('$NodeDesc') 

****向接收方发送报文的传输队列
DEFINE QLOCAL($TranQueue) LIKE(SYSTEM.DEFAULT.LOCAL.QUEUE) USAGE(XMITQ) REPLACE DEFPSIST(YES) MAXDEPTH($MAXDEPTH) MAXMSGL($MAXMSGL) TRIGGER TRIGTYPE(FIRST) INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA($SndChl) TRIGDPTH(1) DESCR('To Tips System Online Transfer Queue') 

****向接收方发送报文的远程队列
DEFINE QREMOTE($RemoteQueue) LIKE(SYSTEM.DEFAULT.REMOTE.QUEUE) RNAME($RcvLocalQueue) RQMNAME($RcvQmgrName) XMITQ($TranQueue) DEFPSIST(YES) DEFBIND(NOTFIXED) REPLACE DESCR('To Tips System Online Queue') 


****向接收方发送报文的通道
DEFINE CHANNEL($SndChl) CHLTYPE(SDR) CONNAME('$RcvHostName($RcvHostPort)') LOCLADDR('$SndHostName') XMITQ('$TranQueue') TRPTYPE($TRPTYPE) REPLACE MAXMSGL($MAXMSGL) DISCINT($DISCINT) COMPMSG($COMPMSG) HBINT($HBINT) SHORTTMR($SHORTTMR) NPMSPEED(NORMAL) SSLPEER('$SSLPEER') DESCR('To Tips System Online Send Message Channel') 

****接收对方报文的通道
DEFINE CHANNEL($RcvChl) CHLTYPE(RCVR) TRPTYPE($TRPTYPE) REPLACE MAXMSGL($MAXMSGL) COMPMSG($COMPMSG) HBINT($HBINT) NPMSPEED(NORMAL) SSLPEER('$SSLPEER') DESCR('To Tips System Online receive Message Channel') 

****创建和启动侦听器 
DEFINE LISTENER($Lsr) TRPTYPE($TRPTYPE) PORT($SndHostPort) CONTROL(QMGR) REPLACE 
START LISTENER($Lsr) 

end
EOF

echo "------ $SndQmgrName 创建完成 ------"

runmqchl -c $SndChl -m $SndQmgrName&

主机二:创建QM_CZ队列管理器

QM_CZ.sh

#!/bin/bash

#================================参数配置区=============================
#发送方队列管理器名称
SndQmgrName=QM_CZ
#接收方队列管理器名称
RcvQmgrName=QM_BK082
#发送方的MQ主机名称和端口
SndHostName="20.198.49.145"
SndHostPort="9009"
#接收方的MQ主机名称和端口
RcvHostName="20.198.49.140"
RcvHostPort="9009"
#发送方本地接收队列
SndLocalQueue=QU.CZ.IN
#传输队列
TranQueue=QU.BK082.TRANS
#远程队列
RemoteQueue=QU.BK082.OUT
#发送通道
SndChl=CZ.BK082.O
#接收通道
RcvChl=BK082.CZ.O
#客户端连接通道
CnnChl=CZ.C
#监听器
Lsr=QM_CZ.LISTEN
#接收方本地接收队列
RcvLocalQueue=QU.BK082.IN
#发送方标识
NodeDesc=CZ

#设定外部接入机构内部使用的MQ队列管理器的日志存放路径,要求日志空间为1G
LogPath=/var/mqm/log
#MQ日志文件大小设置(单位:4KB)
LogFilePages=5120
#MQ 主日志文件最大数
LogPrimaryFiles=30
#MQ 辅助日志文件最大数
LogSecondaryFiles=20
#设定外部接入机构MQ队列管理器的授权用户
MqmUsr=mqm
#MQ字符集设置
CCSID=819
#MQ 的通信协议设置
TRPTYPE=TCP
#消息最大深度
MAXDEPTH=1000000
#消息最大长度
MAXMSGL=41943040
#脉冲信号间隔
HBINT=60
#短重试时间间隔
SHORTTMR=30
#消息压缩算法设置
COMPMSG=ZLIBHIGH
#设置队列管理器死信队列名称
DLQ=DLQ
#设置消息通道的断开连接时间间隔
DISCINT=0
#设置消息通道的加密算法
SSLPEER=
#================================参数配置区=============================

echo "停止监听"
echo "STOP LISTENER($Lsr)"
echo "停止发送通道"
echo "STOP CHANNEL($SndChl)"  | runmqsc $SndQmgrName

echo "停止同名队列管理器"
endmqm -i $SndQmgrName
echo "删除同名队列管理器"
dltmqm $SndQmgrName

echo "------ $SndQmgrName 创建开始 ------"

echo "创建队列管理器 $SndQmgrName "
crtmqm -lc -lf $LogFilePages -lp $LogPrimaryFiles -ls $LogSecondaryFiles $SndQmgrName
echo "启动队列管理器"
strmqm $SndQmgrName

runmqsc $SndQmgrName<<EOF

****关闭安全认证
ALTER QMGR CHLAUTH(DISABLED)

****设置队列管理器字符集
ALTER QMGR CCSID($CCSID) 

****创建及设置队列管理器的死信队列
DEFINE QLOCAL($DLQ) LIKE(SYSTEM.DEFAULT.LOCAL.QUEUE) USAGE(NORMAL) DEFPSIST(YES) MAXMSGL($MAXMSGL) MAXDEPTH($MAXDEPTH) REPLACE DESCR('Dead Letter Queue') 
ALTER QMGR DEADQ($DLQ) 

****设置队列管理器的消息最大长度  
ALTER QMGR MAXMSGL($MAXMSGL) 


****创建服务器连接通道
DEFINE CHANNEL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE($TRPTYPE) MCAUSER('$MqmUsr') MAXMSGL($MAXMSGL) REPLACE 
DEFINE CHANNEL($CnnChl) CHLTYPE(SVRCONN) TRPTYPE($TRPTYPE) MCAUSER('$MqmUsr') MAXMSGL($MAXMSGL) REPLACE 

****接收对方报文的发送方本地队列
DEFINE QLOCAL($SndLocalQueue) LIKE(SYSTEM.DEFAULT.LOCAL.QUEUE) USAGE(NORMAL) REPLACE DEFPSIST(YES) MAXDEPTH($MAXDEPTH) MAXMSGL($MAXMSGL) DESCR('$NodeDesc') 

****向接收方发送报文的传输队列
DEFINE QLOCAL($TranQueue) LIKE(SYSTEM.DEFAULT.LOCAL.QUEUE) USAGE(XMITQ) REPLACE DEFPSIST(YES) MAXDEPTH($MAXDEPTH) MAXMSGL($MAXMSGL) TRIGGER TRIGTYPE(FIRST) INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA($SndChl) TRIGDPTH(1) DESCR('To Tips System Online Transfer Queue') 

****向接收方发送报文的远程队列
DEFINE QREMOTE($RemoteQueue) LIKE(SYSTEM.DEFAULT.REMOTE.QUEUE) RNAME($RcvLocalQueue) RQMNAME($RcvQmgrName) XMITQ($TranQueue) DEFPSIST(YES) DEFBIND(NOTFIXED) REPLACE DESCR('To Tips System Online Queue') 


****向接收方发送报文的通道
DEFINE CHANNEL($SndChl) CHLTYPE(SDR) CONNAME('$RcvHostName($RcvHostPort)') LOCLADDR('$SndHostName') XMITQ('$TranQueue') TRPTYPE($TRPTYPE) REPLACE MAXMSGL($MAXMSGL) DISCINT($DISCINT) COMPMSG($COMPMSG) HBINT($HBINT) SHORTTMR($SHORTTMR) NPMSPEED(NORMAL) SSLPEER('$SSLPEER') DESCR('To Tips System Online Send Message Channel') 

****接收对方报文的通道
DEFINE CHANNEL($RcvChl) CHLTYPE(RCVR) TRPTYPE($TRPTYPE) REPLACE MAXMSGL($MAXMSGL) COMPMSG($COMPMSG) HBINT($HBINT) NPMSPEED(NORMAL) SSLPEER('$SSLPEER') DESCR('To Tips System Online receive Message Channel') 

****创建和启动侦听器 
DEFINE LISTENER($Lsr) TRPTYPE($TRPTYPE) PORT($SndHostPort) CONTROL(QMGR) REPLACE 
START LISTENER($Lsr) 

end
EOF

echo "------ $SndQmgrName 创建完成 ------"

runmqchl -c $SndChl -m $SndQmgrName&

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值