MQ网关优化操作手册.doc
《MQ网关优化操作手册.doc》由会员分享,可在线阅读,更多相关《MQ网关优化操作手册.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MQ网关优化操作手册 下面以网银清算为例,来说明怎么使用AE来定制MQ网关。1. AE配置说明1.1 定制网关在“基本定制”-“网关”中右键“新建”,如下图所示,输入网关号和网关名称,选择网关类型,点击确定,完成了网关的基本定制。1.2 动态改变日志级别设置选择“渠道”,选中需要设置级别的渠道,如625渠道,然后选择“外部交易请求”,如下图所示:点右键“新建”外部交易码为“”的外部交易,并设置日志级别,如下图:这样,使用pbsettranlog工具就可以动态改变MQ网关的日志级别。1.3 处理函数定制依次选择“基本定制”、“处理函数”、“网关相关”,定制需要的函数,图解如下:1.4 新建MQ渠
2、道n 双击“渠道”,在右面的空白处右键“新建”,来新建MQ渠道。如下图,输入渠道名称和渠道号,点“下一步”。n 选择渠道类别为“服务渠道(综合渠道)/S”,网关号选择在“网关定制”中定制的网关,选中渠道状态“正常”。n 输入队列管理器名称、发送队列名、接收队列名、消息生存期、渠道超时时间、等待接收时间、网关进程数、缓冲区大小等项。注:1)其中消息生存期单位是1/10秒,如果设置成-1,就代表消息永久存在;2)接收超时时间单位是毫秒;3)消息缓冲区大小单位是KB;4)通讯模式,如果设置成“MQ事务模式/5”,那么会使用事务方式接收MQ队列的消息。如网银清算,使用的通讯模式是4,不是事务模式;SW
3、IFT使用的是模式5,事务模式。n 函数的配置如下如果通讯模式是MQ事务模式,需要在函数配置中配置“取报文长度函数”。2. 接口函数说明2.1 报文接收后处理函数 在从MQ中收到消息后进行处理(如可以进行安全认证),AE 中定义该函数。在渠道配置的接收后处理函数中选择配置的函数(函数名自己定义,视应用需要开发)。函数原型:int mqrecvfunc(char *buf,int messlen,CHNL_DEF * chnlP,char *rtnbuf)参数: buf:mq消息 messlen:消息长度 chnlP:渠道信息 rtnbuf:函数处理后返回的数据区。返回值 0 成功 0 返回的数
4、据区大小2.2 获取交易类型函数(请求还是应答交易, 该函数接口必须开发) AE 中定义该函数。在渠道配置的 取交易类型函数中选择配置的函数(函数名自己定义,注意加头文件#include )。函数原型:int GetMsgType(char *buf,CHNL_DEF *chnlP,MQMD md) 参数: buf:经报文接收后处理函数处理完返回的数据 chnlP:渠道信息 md:消息描述结构体。 返回值:REQUEST(宏) 请求 ANSWER(宏)应答 0 失败2.3 获取外部交易码函数(该函数接口必须开发) AE 中定义该函数。在渠道配置的 取交易码函数中选择配置的函数(函数名自己定义)
5、。 函数原型:int gettrancode(char *buf,CHNL_DEF *chnlP,char *trancode)参数: buf:经报文接收后处理函数处理完返回的数据 chnlP:渠道信息 trancode:函数处理后返回的交易码。返回值:0 成功 0 失败2.4 取渠道跟踪码函数(该函数接口必须开发) AE 中定义该函数,在渠道配置的 取交易码函数中选择配置的函数。 int Chnl_IBPSGetTraceCode(CHNL_DEF *ChnlP, char * rcv_buf, long *TraceCode) 入参: buf 经报文接收后处理函数处理完返回的数据 chnl
6、P 渠道信息 出参:TraceCode:渠道跟踪码。 返回值: 0 成功 0 失败2.5 报文发送前处理函数(该函数接口视需要开发) 在发往MQ网关前应用做消息处理(如可以进行安全认证),AE 中定义该函数。在渠道配置的 发送前处理函数中选择配置的函数(函数名自己定义)。 函数原型:int mqsendfunc(char *buf,int messlen,CHNL_DEF *chnlP,char *sndbuf) 参数: buf:应用消息数据 messlen:消息长度 chnlP:渠道信息 sndbuf:函数处理后返回的数据区。返回值:0 成功 0 返回的数据区大小2.6 取报文长度函数(通讯
7、模式为MQ事务模式时必须开发) 此函数如果执行成功,则MQ队列中的消息被取走,如果失败,则消息会一直留在MQ队列中。 函数原型:int MqrecvmsgTran(char *buf, long messlen, CHNL_DEF * chnlP) 参数: buf:应用消息数据 messlen:消息长度 chnlP:渠道信息返回值:=0 成功 0 失败3. MQ网关脚本3.1 创建MQ脚本(参考附录)要根据网银清算的需要创建MQ脚本,脚本中主要定义的内容是:1)队列管理器名称2)本地队列:包括死信队列、接收队列和传输队列。其中本地队列创建时MSGDLVSQ属性设置为FIFO模式。3)远程队列定
8、义4)通道:包括发送通道和接收通道5)侦听器3.2 执行MQ脚本执行MQ创建脚本和启动脚本,并用dspmq查看队列管理器的状态,如果是running,则创建成功。附录(一):MQ脚本创建实例(网银清算脚本):1. 创建脚本#!/usr/bin/ksh# 消息最大长度export MAXMSGL=# 脉冲信号间隔export HBINT=60# 短重试时间间隔export SHORTTMR=30# 消息压缩算法设置export COMPMSG=ZLIBHIGH# MQ 日志文件大小设置(单位:4KB)export LogFilePages=4096# MQ 主日志文件最大数export LogP
9、rimaryFiles=10# MQ 辅助日志文件最大数export LogSecondaryFiles=10# 队列管理器前缀export QmgrPrefix=QMU1000A# 设置队列管理器死信队列名称export DLQ=DLQ# 设置IBPS系统的节点代码export SwiftNodeCode=IBPS# 设置消息通道的断开连接时间间隔export DISCINT=6000# 设置消息通道的加密算法export SSLPEER=# 在MQ配置指引中的队列管理器命名规则预留位设置(缺省: _01)export ReserveNo=_01#export CCSID=819export
10、 MAXDEPTH=export TRPTYPE=TCP#设外部接入机构所使用的MQ版本export MqVer=6.0#设定外部接入机构MQ队列管理器的授权用户export MqmUsr=mqm#设定外部接入机构内部使用的MQ队列管理器的日志存放路径export LogPath=/var/mqm/log#export LogPath=/home/ebmp1/log#设定外部接入机构MQ消息出口函数(只有MQ 5.3及之下版本需要配置)export MSGEXIT=#设定外部接入机构的MQ主机名称和端口#本地绑定IPexport ExtHostName=10.1.101.8export Ext
11、HostPort=1449#设定外部接入机构的节点代码和名称export ExtNodeCode=0export ExtOrganDescr=中国光大银行#设定中国人民银行的通用报文传输平台(UMTS系统)的MQ主机名称和端口export PBCHostName=10.1.101.8export PBCHostPort=1448#设定中国人民银行的通用报文传输平台(UMTS系统)的节点代码标识export PBCNodeCode=0001# 创建外部接入机构队列管理器及队列、消息通道# 缺省有256个最大句柄# 使用循环日志的方式# LogFilePages 5120*4 = 20M# Log
12、PrimaryFiles 50个主Log文件# LogSecondaryFiles 30个次Log文件#外部接入机构队列管理器名称#export QmgrName=$QmgrPrefix$ExtNodeCode$ReserveNoexport QmgrName=$QmgrPrefix#UMTS队列管理器名称export RemoteQmgrName=QMUMBFEA#创建外部接入机构队列管理器echo create MQ Qmgr: $QmgrName crtmqm -ld $LogPath -lc -lf $LogFilePages -lp $LogPrimaryFiles -ls $Log
13、SecondaryFiles $QmgrName#启动外部接入机构队列管理器echo start MQ Qmgr: $QmgrName strmqm $QmgrName#设置外部接入机构队列管理器字符集echo set CCSID of MQ Qmgr( $QmgrName ): $CCSID echo ALTER QMGR CCSID($CCSID)|runmqsc $QmgrName#创建及设置外部接入机构队列管理器的死信队列echo set Dead Letter Queue of MQ Qmgr( $QmgrName ): $DLQ echo DEFINE QLOCAL($DLQ) L
14、IKE(SYSTEM.DEFAULT.LOCAL.QUEUE)+ USAGE(NORMAL) DEFPSIST(YES) MAXMSGL($MAXMSGL)+ MAXDEPTH($MAXDEPTH) REPLACE DESCR(Dead Letter Queue)|runmqsc $QmgrNameecho ALTER QMGR DEADQ($DLQ)|runmqsc $QmgrName#设置外部接入机构队列管理器的消息最大长度echo Max Length of Messages in MQ Qmgr( $QmgrName ): $MAXMSGL echo ALTER QMGR MAXMSG
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MQ 网关 优化 操作手册
限制150内