一、 MQ安装
- 打开安装程序
- 检查所需软件是否已经全部安装,如果没有,则需要安装之后才能进行MQ安装。
检查方法:选择软件需求,对于列表中未安装软件进行安装。选择CD-ROM,选取语言,点击确定,即可进入自动安装页面。
- 点击下一步,选择安装路径,下一步,直到安装完成,刷新安装向导页面,所有必需软件都以安装完成。
- 网络配置选项不做任何更改。
- 选择WebSphere MQ安装,选择启动IBM WebSphere MQ安装程序。接受许可协议,下一步。
- 选择定制安装。下一步。
- 选择路径,安装所有需要的功能部件(选择未安装的功能部件,选择安装此功能部件)。
8. 下一步,安装。
9. 安装完成之后,会自动进入到网络配置管理向导页面。
10. 选择下一步,选择否。
11. 下一步,直到安装完成。
二、 MQ通道配置
1.打开MQ.
2.选择队列管理器,新建队列。因为此次安装是在同一台机器上同时模拟安装了财政端MQ_MOF、代理银行端MQ_PB、清算银行端MQ_CB三个队列管理器,因为是同一台机器,所以端口号不能冲突,这里分别使用2222,3333,4444对应上面三个队列管理器。
选择队列管理器-》右键,选择新建-》队列管理器。输入队列管理器名称,下一步,输入侦听端口号,下一步,完成,创建队列成功。
3.队列管理器创建完成之后,需要为每一个队列管理器创建一个本地队列。
例如:选择MQ_MOF下的队列,右键,选择创建本地队列。输入本地队列名称l_mof,下一步,选择扩展选项,修改消息传递队列顺序为FIFO方式,点击完成。三个本地队列名称分别为l_mof、l_pb、l_cb。
FIFO:first-in first-out先进先出模式。在计算机中,先入先出队列是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令(指令就是计算机在响应用户操作的程序代码,对用户而言是透明的)。
4.创建传输队列。队列名称的命名没有任何要求,但是后面需要用到这个队列名称。
以MQ_MOF队列管理器为例,因为现在有三个队列,发送消息的时候实际上时两两发送的,即每个队列需要跟另外两个队列互联,所以每个队列管理器需要创建两个传输队列(传输队列实际上时本地队列)。选择队列,右键,新建选择本地队列,输入传输队列名称,t_pb,下一步,在常规选项中,用法选择传输,扩展选项中,消息传递顺序仍然为FIFO模式,点击完成,传输队列创建成功。t_cb创建方法一样。
5.创建远程队列,将远程队列和创建好的本地队列映射到本地来,同样每个队列管理器需要创建两个远程队列来分别映射远程的两个队列管理器。以MQ_MOF为例,选择队列,右键,新建远程队列定义,输入远程队列名称r_pb,输入队列名称l_pb、队列管理器名称MQ_PB、传输队列名称t_pb。
注意:这里的队列名称对应远程的那个队列管理器中创建好的本地队列,远程队列管理器名称对应远程的那个队列管理器,传输队列名称对应刚才本地已经创建好的传输队列。
MQ_MOF队列管理器映射到代理银行端的远程队列管理器MQ_PB。
6.至此,所有队列都创建完成之后,每一个队列管理器中有5个队列,其中1个是本地队列,2个传输队列,2个远程队列。
7.创建通道。选择队列管理器如MQ_MOF,选择高级,选择通道,右键,新建,选择发送方(或者接收方)通道。
以财政为例,需要将数据发送到代理银行和人民银行,所以需要创建两个发送通道,并且创建一个接收通道来收取对方发送过来的信息,代理银行和人民银行也是类似。
注意:发送通道和接收通道的名称没有要求,只要能区分出来即可,这是在创建发送通道是,这里的‘连接名称’必须为对方队列管理器的IP和端口号,格式为“IP(port)”,传输队列应该为已经创建好的那个传输队列。
8.创建好发送方和接收方通道之后,还需要创建一个服务器连接通道,供业务系统使用。服务器连接通道的名称一定要和系统中的名称一致。
查看系统中服务器连接通道名称,文件路径:EVoucher2013.06.15.00(build20130724)\全量\EVoucherServer\realware\WEB-INF\classes\ evoucher.conf
打开evoucher.conf文件,找到下面的文字,红色部分即为系统中服务器连接通道名称。
#MQ服务器连接通道名称
evoucher.service.msg.mq.Channel=DC.SVRCONN
注意:如果服务器连接通道名称不一致的话,要么修改MQ通道的名称,要么修改evoucher.conf配置文件。
安全配置报错可考虑配置(MUSR_MQADMIN)
8.通道创建完成之后,可以启动一下发送通道来测试创建好的通道是不是能够畅通。选择发送方通道,右键,启动。如果通道状态显示“正在运行”,则说明创建的通道没有问题,否则就要检查一下通道创建是否正确。
9. 另外还有一点需要注意:因为通道在一段时间不活动的话,MQ会自动停止通道运行,这时就需要在传输通道上建立触发,当有消息需要传输的时候,可以自动启动发送方通道。这个初始队列是固定的,要求必须写成SYSTEM.CHANNEL.INITQ
以MQ_MOF为例
选择传输队列t_pb,点击右键,属性,选择触发