| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- #!/bin/bash
- # ============================================================
- # 保税维修关务对接 - 我方 IBM MQ 创建脚本
- # 环境:IBM MQ 9.x (Linux)
- # 执行用户:mqm (需先 su - mqm)
- # 我方MQ信息:
- # 队列管理器名称:ERP_QM
- # 监听端口:1414
- # 远程IP:117.40.187.228
- # 对接方MQ信息:
- # 队列管理器:GDHXMQ
- # 远程IP:Port:59.55.120.119(40043)
- # 本地队列(对方接收):QL_GDHX_ERP
- # 接收方通道:GDHX_ERP
- # ============================================================
- QMGR=ERP_QM
- LISTENER_PORT=1414
- echo "===== 1. 创建队列管理器 ====="
- crtmqm -u SYSTEM.DEAD.LETTER.QUEUE $QMGR
- echo "===== 2. 启动队列管理器 ====="
- strmqm $QMGR
- echo "===== 3. 执行 MQSC 命令创建对象 ====="
- runmqsc $QMGR << 'MQSC_EOF'
- * --- 3.1 创建监听器 ---
- DEFINE LISTENER(ERP_LSR) TRPTYPE(TCP) PORT(1414) CONTROL(QMGR) REPLACE
- START LISTENER(ERP_LSR)
- * --- 3.2 创建死信队列 ---
- DEFINE QLOCAL(SYSTEM.DEAD.LETTER.QUEUE) REPLACE
- * --- 3.3 创建我方接收队列(海关回执 WO200 写入此队列) ---
- * 海关→企业 的回执报文落地队列
- DEFINE QLOCAL(QL_ERP_RECEIVE) +
- DESCR('ERP接收海关回执队列-WO200') +
- MAXDEPTH(10000) +
- MAXMSGL(104857600) +
- REPLACE
- * --- 3.4 创建远程队列定义(指向对方队列管理器 GDHXMQ 的本地队列 QL_GDHX_ERP)---
- * 企业→海关 的申报报文通过此远程队列发送
- DEFINE QREMOTE(QR_ERP_TO_GDHX) +
- DESCR('ERP发往海关申报队列-远程定义') +
- RNAME(QL_GDHX_ERP) +
- RQMNAME(GDHXMQ) +
- XMITQ(XQ_GDHX) +
- REPLACE
- * --- 3.5 创建传输队列 ---
- DEFINE QLOCAL(XQ_GDHX) +
- DESCR('发往GDHXMQ的传输队列') +
- USAGE(XMITQ) +
- MAXDEPTH(10000) +
- MAXMSGL(104857600) +
- REPLACE
- * --- 3.6 创建发送方通道(我方→对方)---
- * 通道名需与对方接收方通道名一致:GDHX_ERP
- DEFINE CHANNEL(GDHX_ERP) +
- CHLTYPE(SDR) +
- TRPTYPE(TCP) +
- CONNAME('59.55.120.119(40043)') +
- XMITQ(XQ_GDHX) +
- DISCINT(0) +
- SHORTRTY(10) +
- SHORTTMR(60) +
- LONGRTY(999999999) +
- LONGTMR(1200) +
- HBINT(300) +
- MAXMSGL(104857600) +
- REPLACE
- * --- 3.7 创建接收方通道(对方→我方)---
- * 通道名由对方发送方通道决定,需与对方约定,暂命名 ERP_GDHX
- DEFINE CHANNEL(ERP_GDHX) +
- CHLTYPE(RCVR) +
- TRPTYPE(TCP) +
- MAXMSGL(104857600) +
- REPLACE
- * --- 3.8 创建服务器连接通道(供Java客户端连接)---
- DEFINE CHANNEL(ERP_SVRCONN) +
- CHLTYPE(SVRCONN) +
- TRPTYPE(TCP) +
- MAXMSGL(104857600) +
- REPLACE
- * --- 3.9 通道认证配置(生产环境建议收紧)---
- * 允许 mqm 用户通过 SVRCONN 连接
- SET CHLAUTH(ERP_SVRCONN) TYPE(BLOCKUSER) USERLIST('nobody') ACTION(REPLACE)
- * 允许所有IP连接(测试用,生产应限制为对接方IP)
- SET CHLAUTH(ERP_SVRCONN) TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(CHANNEL) ACTION(REPLACE)
- * --- 3.10 启动发送方通道 ---
- START CHANNEL(GDHX_ERP)
- MQSC_EOF
- echo "===== 4. 验证对象 ====="
- echo "--- 队列管理器状态 ---"
- dspmq -m $QMGR
- echo "--- 队列列表 ---"
- echo "DISPLAY QLOCAL(*) WHERE(CURDEPTH NE 0)" | runmqsc $QMGR
- echo "--- 通道状态 ---"
- echo "DISPLAY CHSTATUS(*)" | runmqsc $QMGR
- echo ""
- echo "===== 创建完成 ====="
- echo "队列管理器: $QMGR"
- echo "监听端口: $LISTENER_PORT"
- echo "接收队列: QL_ERP_RECEIVE (海关回执WO200)"
- echo "发送远程队列: QR_ERP_TO_GDHX (企业申报→海关)"
- echo "发送通道: GDHX_ERP (→ 59.55.120.119:40043 / GDHXMQ)"
- echo "接收通道: ERP_GDHX (需与对方确认通道名)"
- echo "SVRCONN通道: ERP_SVRCONN (Java客户端连接用)"
- echo ""
- echo "注意:"
- echo " 1. 对方需在其 GDHXMQ 上创建接收方通道 GDHX_ERP"
- echo " 2. 对方需创建发送方通道指向我方 ERP_QM 的 ERP_GDHX 接收通道"
- echo " 3. 防火墙需开放我方1414、对方40043端口双向通信"
- echo " 4. mqm用户密码: 400fdf7051ccb4a34 (Java连接用)"
|