如何使用 Spring boot 在 Camel Consumer 中为 IBM MQ Connection Factory 设置 MQOO_INPUT_EXCLUSIVE 选项?

问题描述 投票:0回答:1

我正在尝试设置需要使用来自 IBM MQ 队列的消息的 Spring Boot 应用程序,同时确保应用程序的只有一个实例接收所有消息以维护消息顺序。为了实现这一点,我需要配置 Camel 消费者以打开一个启用了 MQOO_INPUT_EXCLUSIVE 选项的连接。

我已经在我的应用程序中设置了 JmsComponent、MQQueueConnectionFactory 和 RouteBuilder,但我找不到属性键和值来通过 MQQueueConnectionFactory 启用连接的 MQOO_INPUT_EXCLUSIVE 选项。

通过更改队列设置中的默认输入打开选项尝试了这种方法,它可以工作,但是有没有办法通过在打开连接时传递此属性来实现此目的?

我尝试在网上搜索有关如何设置此选项的信息,但我一直无法找到解决方案,结果要么与基于骆驼的配置无关,要么已经过时。谁能帮我这个?任何帮助将不胜感激!

java spring-boot apache-camel ibm-mq
1个回答
0
投票

尝试在

MQQueueConnectionFactory
的方法
MQConstants.MQOO_INPUT_EXCLUSIVE
中使用设置 setMQConnectionOptions(int cTagOpt) :

@Bean
public MQQueueConnectionFactory connectionFactory() throws Exception {
  MQQueueConnectionFactory connectionFactory = new MQQueueConnectionFactory();
  connectionFactory.setHostName(...);
  connectionFactory.setTransportType(...);
  connectionFactory.setChannel(....);
  connectionFactory.setPort(....);
  connectionFactory.setMQConnectionOptions(MQConstants.MQOO_INPUT_EXCLUSIVE);
  connectionFactory.setQueueManager(....);
  return connectionFactory;
}

看看这是否有效。

© www.soinside.com 2019 - 2024. All rights reserved.