java 连接IBM MQ的方法和常见问题(202011月更新)

#!/bin/sh
#WRITE:dxy
#RUNCTION:run MQ

if [[ ! -n $1 ]];then
echo "执行命令模式:sh rum_mq.sh 名称"
exit
fi

PIPE=$1
P_PIPE=`echo "QM_**_${PIPE}_01"`

STR="
### 创建监听
ALTER QMGR CCSID(1208)
DEFINE LISTENER('ZH_LSN') TRPTYPE(TCP) PORT(1415) CONTROL(QMGR)
START LISTENER('ZH_LSN')
DISPLAY LSSTATUS(*)

### 死信队列
DEFINE QLOCAL(DLQ) DEFPSIST(YES) MAXDEPTH(1000000) MAXMSGL(41943040) REPLACE
ALTER QMGR DEADQ(DLQ)
DIS QMGR ALL

DELETE QLOCAL('${PIPE}.PBC.BATCH.OUT')
DEFINE QLOCAL('${PIPE}.PBC.BATCH.OUT') MAXDEPTH(1000000) MAXMSGL(41943040) USAGE(XMITQ)
DISPLAY QLOCAL('${PIPE}.PBC.BATCH.OUT') ALL

DELETE QLOCAL('PBC.${PIPE}.BATCH.IN')
DEFINE QLOCAL('PBC.${PIPE}.BATCH.IN') MAXDEPTH(1000000) MAXMSGL(41943040)
DISPLAY QLOCAL('PBC.${PIPE}.BATCH.IN') ALL

DELETE QREMOTE('PBC.EXT.BATCH.IN')
DEFINE QREMOTE('PBC.EXT.BATCH.IN') RNAME('PBC.${PIPE}.BATCH.IN') RQMNAME('QM_****_*******_01') XMITQ('${PIPE}.PBC.BATCH.OUT') REPLACE
DISPLAY QREMOTE('PBC.EXT.BATCH.IN') ALL

 

STOP CHANNEL ('${PIPE}.PBC')
DELETE CHANNEL ('${PIPE}.PBC')
DEFINE CHANNEL ('${PIPE}.PBC') CHLTYPE(SDR) CONNAME('对方ip(1414)') XMITQ('${PIPE}.PBC.BATCH.OUT')
ALTER CHANNEL ('${PIPE}.PBC') CHLTYPE(SDR) DISCINT(0) SHORTRTY(50) MAXMSGL(41943040)
DISPLAY CHANNEL ('${PIPE}.PBC') ALL
ALTER QLOCAL('${PIPE}.PBC.BATCH.OUT') TRIGDATA('${PIPE}.PBC') TRIGTYPE(FIRST) TRIGGER INITQ('SYSTEM.CHANNEL.INITQ')


STOP CHANNEL ('PBC.${PIPE}')
DELETE CHANNEL ('PBC.${PIPE}')
DEFINE CHANNEL('PBC.${PIPE}') CHLTYPE(RCVR)
ALTER CHANNEL('PBC.${PIPE}') CHLTYPE(RCVR) MAXMSGL(41943040)

START CHANNEL ('PBC.${PIPE}')

### 启动通道
START CHANNEL ('${PIPE}.PBC')
DISPLAY CHSTATUS ('${PIPE}.PBC')

DISPLAY CHSTATUS ('PBC.${PIPE}')

### 服务器连接通道。
DEFINE CHANNEL(DC.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP) MCAUSER('mqm') REPLACE

END"

echo ${P_PIPE}
###开始执行

endmqm -i ${P_PIPE}
dltmqm ${P_PIPE}
crtmqm ${P_PIPE}
strmqm ${P_PIPE}

##进入MQ命令行模式
runmqsc ${P_PIPE} <<EOF
#${STR}
EOF
##给 mqm 组设置访问权限#给队列管理器设置权限
setmqaut -m QM_**_${PIPE}_01 -t qmgr -g mqm +all

 

 

执行如果提示进程再运行而导致的失败请杀死进程,如果执行报错2059不一定是ssid值的问题,也有可能是没有启动队列,2035请参考笔记1和2

posted @   赤那王鹏飞  阅读(706)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示