| wbi message broker (ibm实现数据层EAI 软件)环境配置和相关信息 在 AIX 上配置MQ 的队列管理器,并实现与Window上的congfigMangager 底层使用的MQ 队列管理器实现相互通信配置 依据约定: Window 上的congfigMangager 底层使用的MQ 队列管理器:WBRK_QM,对应的监听器端口为 1414 # login as root # cd /var/mqm # vi mqs.ini 文件,修改为LogFilePages=10240, 最大值可为 16384(为64M),根据需要调整此值,作为生产系统,一定要调整此值。 创建队列管理器 # crtmqm AIX_QM 启动队列管理器 # strmqm AIX_QM 运行MQSeries命令 # runmqsc AIX_QM // endmqm AIX_QM 停止队列管理器 // dltmqm AIX_QM 删除队列管理器 修改 gmgr缺省的ccsid和Windows 上的WBRK_QM 的一样(一般Unix、Linux平台中MQ默认的字符集为819,而中文Windows平台为1381(英文:437),所以你必须改变其字符集,使两边的字符集相同,一般改被管理的字符集) alter qmgr ccsid(1381) 定义允许window 平台的 MQ 资源管理器远程管理使用的服务器连接通道 define channel(SYSTEM.ADMIN.SVRCONN) chltype(SVRCONN) trptype(TCP) mcauser(‘mqm’) // mcauser(‘mqm’) 忽略用户权限,可以远程登陆 end命令退出 MQSC命令交互环境 end 使用strmqcsv命令来启动被管理队列管理器上的命令服务器,启动命令服务器,允许从window上远程管理 strmqcsv AIX_QM //strmqcsv AIX_QM # start AIX_QM ‘s command server //dspmqcsv AIX_QM # display ….. status 定义 MQ的监听器 #vi /etc/services, add a line: AIX_QM 1414/tcp #vi /etc/inetd.conf, add a line: AIX_QM stream tcp nowait mqm /usr/mqm/bin/amqcrsta amqcrsta -m AIX_QM 启动 MQ的监听器 #refresh -s inetd 在 AIX 上定义 MQ队列管理器的资源: runmqsc AIX_QM define qlocal(WBRK_QM) usage(xmitq) define channel(AIX.WBRK) chltype(SDR) trptype(TCP) conname('10.131.67.172(1414)') xmitq(WBRK_QM) define channel(WBRK.AIX) chltype(rcvr) start chl(AIX.WBRK)
配置window上MQ 的队列管理器,并实现与UNIX borker 底层使用的MQ 队列管理器实现相互通信配置 打开MQ explore 建立channel如下: AIX.WBRK 接收通道 WBRK.AIX 发送通道 通信队列 AIX_QM 在AIX上创建Broker组件 login as db2inst1 $mqsisetcapacity -c 12 $mqsidisplaycapacity 如果修改了 db2inst1 的密码,会不能启动 broker, 导致 mqsistart 失败, 需要使用 mqsichangebroker 来作相应的修改(-i 用户名 –a 密码) $ mqsicreatebroker AIX_BROKER -i db2inst1 -a password -q AIX_QM -n WBRKBKDB $ mqsistart AIX_BROKER $ mqsilist $ mqsilist AIX_BROKER // mqsichangebroker AIX_BROKER -i db2inst1 -a password –p password 改变用户/密码 // mqsistop AIX_BROKER 停止BROKER // mqsideletebroker AIX_BROKER 删除BROKER 可通过用户日志开监控 Broker 的运行产生的信息 #tail -f /var/adm/user.log
在WBI toolkit管理透视图中,创建代理Borker(远程AIX部署)。Broker name可以自定义,队列名称必须与发送通道所定义的队列名称一致,Broker名称必须和AIX上Broker名称一致 AIX环境和WIN cmgr配置步奏到此完成 Other: Broker不支持64位DB2,否则会报ODBC连接错误 Broker权限: mqsi_setupdatabase db2 /usr/opt/db2_08_01 cd /var/mqsi chown -R db2inst1:db2grp1 * 彻底删除cmgr环境配置 Unix: 1.删除broker 2.删除queue manager 3.删除WBRKBKDB Win: 1.删除开发环境 2.删除queue manager 3.删除WBRKBKDB,WBRKCMDB (1.连接WBRKCMDB,delete from cbroker where cname = ’broker name’ 2.Delete the broker using the mqsideletebroker command on the system on which you created it.) 一些命令 dspmq: 查看现有QM状态 ps -ef|grep bip 查看broker运行进程信息 dis qmgr all runmqsc AIX_QM 环境下 显示队列管理器的细节 ps -ef|grep mq 使用netstat -in (接口配置) 命令和 netstat -rn (路由配置) 命令检查IP配置;即接口的IP地址和缺省网关的配置等是否正确 db2 list db directory db2 list tables
收发测试消息 amqsput QR_NT QM_NT amqsget Q_UNIX QM_UNIX 查看log命令 路径:/var/mqsi/log/ 语法: mqsireadlog -u -e -o egname.out mqsiformatlog -i .out -o .txt mqsichangetrace AIX_BROKER -u -e default -r -l debug mqsireadlog AIX_BROKER -u -e default -f -o 123.out mqsiformatlog -i 123.out -o 123.txt 配置远程oracle数据库步奏: 1. 添加oracle数据库tnsnames.ora内容 2. 修改Db2inst1用户.profile文件,添加oracle用户环境变量 3. 修改.odbc.ini文件,添加oracle内容 4. 运行mqsi_setupdatabase命令,建立broker目录到oracle目录的软连接 5. 运行mqsisetdbparms命令,设置broker访问库用户名,密码 1. EAI35 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.131.53.35)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = cms.sn.cmcc) ) ) 2. if [ -s "$MAIL" ]# This is at Shell startup. In normal then echo "$MAILMSG"# operation, the Shell checks fi# periodically. # The following three lines have been added by UDB DB2. if [ -f /home/db2inst1/sqllib/db2profile ]; then . /home/db2inst1/sqllib/db2profile fi LC__FASTMSG=false ODBCINI=/var/wmqi/odbc/.odbc.ini LIBPATH=$LIBPATH:/usr/java131/jre/bin/classic:/var/wmqi/lib:/usr/opt/wmqi/merant /lib:/usr/opt/wmqi/lib MQSI_REGISTRY=/var/wmqi PATH=$PATH:/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:. export PATH LC__FASTMSG ODBCINI LIBPATH MQSI_REGISTRY ORACLE_BASE=/oracle ORACLE_HOME=/oracle/product/9.2.0 NLS_LANG=AMERICAN_AMERICA.UTF8 LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32 LIBPATH=/usr/lib:$ORACLE_HOME/lib32:$ORACLE_HOME/lib:$LIBPATH LIBPATH_64=/usr/lib:$ORACLE_HOME/lib32:$ORACLE_HOME/lib PATH=$ORACLE_HOME/bin:$PATH ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export PATH ORACLE_BASE ORACLE_HOME NLS_LANG LD_LIBRARY_PATH LIBPATH LIBPATH_64 ORA_NLS33 3. [ODBC Data Sources] WBRKBKDB=IBM DB2 ODBC Driver ORACLEDB=DataDirect 410 Oracle 8 Driver SYBASEDB=DataDirect 410 Sybase ASE Driver [WBRKBKDB] Driver=/home/db2inst1/sqllib/lib/libdb2.a Description=WBRKBKDB DB2 ODBC Database Database=WBRKBKDB [ORACLEDB] Driver=/usr/opt/wmqi/merant/lib/UKor818.so WorkArounds=536870912 WorkArounds2=2 Description=Oracle9 ServerName=EAI35 EnableDescribeParam=1 OptimizePrepare=1 4. mqsi_setupdatabase oracle9 $ORACLE_HOME 5. mqsisetdbparms AIX_BROKER -n ORACLEDB -u eai -p eai123 Win向导配置BROKER cmgr通讯错误:
PubSubTopology information was not received from the Configuration Manager. Either the Configuration Manager is not available or the user 'administrator@zhengy-eai' does not have authority to view the object. (UUID='PubSubTopology', required attribute='subcomponent.last')
解决方法: 将Broker服务改为自动启动 |