第四章 实验三IBM MQ测试高可用,使用连接工厂(多地址连接方式)

该博客围绕IBM MQ连接工厂实现高可用展开实验。采用多地址连接方式,不通过虚地址,在主节点故障时自动重连备用节点。实验步骤包括队列管理器配置、启动回执发送程序、模拟主网关故障及确认消息收发数量。结果表明,此方式可减少第三方软件使用,实现消息不丢失和服务高可用。

一、实验前言

场景三:测试高可用,使用连接工厂(多地址连接方式),不通过虚地址实现单节点故障后自动连接备用节点(QMRGRECGC->QMFX)
目的:1.实现主节点故障后能够自动重连到备用节点实现消息不丢失,服务高可用

该架构图与实验二的架构图在两个网关前减少了HA的高可用软件。
在这里插入图片描述

具体不一样的是场景三不使用Keepalived作为高可用服务,而采用IBM MQ提供的连接工厂方式,实现程序的主备切换。

二、实验步骤

2.1队列管理器配置

各个队列管理的配置跟实验场景二一样,这里不再重复。

2.2启动回执发送程序

在这里插入图片描述

2.3模拟主网关故障

在程序运行过程中停止主网关的客户端连接通道MY.SVRCONN

在这里插入图片描述
停止之后,程序应该会抛出异常,并发起重连

已发送:15
已发送:16
已发送:17
已发送:18
====有异常=====
com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ2007: 将消息发送至目标 'TO.HUIZHI' 失败。
JMS 尝试执行 MQPUT 或 MQPUT1;然而 WebSphere MQ 报告了错误。
使用链接的异常来确定此错误的原因。
	at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:578)
	at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:214)
	at com.ibm.msg.client.wmq.internal.WMQMessageProducer.checkJmqiCallSuccess(WMQMessageProducer.java:1157)
	at com.ibm.msg.client.wmq.internal.WMQMessageProducer.checkJmqiCallSuccess(WMQMessageProducer.java:1114)
	at com.ibm.msg.client.wmq.internal.WMQMessageProducer.access$800(WMQMessageProducer.java:72)
	at com.ibm.msg.client.wmq.internal.WMQMessageProducer$SpiIdentifiedProducerShadow.sendInternal(WMQMessageProducer.java:843)
	at com.ibm.msg.client.wmq.internal.WMQMessageProducer$ProducerShadow.send(WMQMessageProducer.java:521)
	at com.ibm.msg.client.wmq.internal.WMQMessageProducer.send(WMQMessageProducer.java:1283)
	at com.ibm.msg.client.jms.internal.JmsMessageProducerImpl.sendMessage(JmsMessageProducerImpl.java:838)
	at com.ibm.msg.client.jms.internal.JmsMessageProducerImpl.synchronousSendInternal(JmsMessageProducerImpl.java:1967)
	at com.ibm.msg.client.jms.internal.JmsMessageProducerImpl.sendInternal(JmsMessageProducerImpl.java:1913)
	at com.ibm.msg.client.jms.internal.JmsMessageProducerImpl.send(JmsMessageProducerImpl.java:1469)
	at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProducer.java:293)
	at com.datatech.jmstest.Test_CF.sendMsg2(Test_CF.java:202)
	at com.datatech.jmstest.Test_CF.main(Test_CF.java:171)
Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ 调用失败,完成代码为 '2' ( 'MQCC_FAILED' ),原因为 '2009' ( 'MQRC_CONNECTION_BROKEN' )。
	at com.ibm.msg.clie
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值