当前位置: 首页 > 知识库问答 >
问题:

Spring引导JMSIBMMQ

单展
2023-03-14

我试图从我的Spring启动服务向IBMMQ队列发送消息。配置如下:

一个pplication.properties

ibm.mq.queueManager=QM1
ibm.mq.queue=DEV.QUEUE.1
ibm.mq.channel=DEV.APP.RECEIVER
ibm.mq.host=localhost
ibm.mq.port=1414

菜豆

@Bean
        public MQQueueConnectionFactory mqQueueConnectionFactory() {
            MQQueueConnectionFactory mqQueueConnectionFactory = new MQQueueConnectionFactory();
            mqQueueConnectionFactory.setHostName(host);
            try {
                mqQueueConnectionFactory.setTransportType(WMQConstants.ADMIN_QUEUE_DOMAIN);
                mqQueueConnectionFactory.setCCSID(1208);
                mqQueueConnectionFactory.setChannel(channel);
                mqQueueConnectionFactory.setPort(port);
                mqQueueConnectionFactory.setQueueManager(queueManager);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return mqQueueConnectionFactory;
        }

IBM MQ浏览器图片

当我尝试发送消息时,我收到错误:

'2' ('MQCC_FAILED') razón '2539' ('MQRC_CHANNEL_CONFIG_ERROR').

我错过了什么?我的chammel类型所显示的错误与我的请求不符,但我不知道这意味着什么。

提前谢谢。

共有2个答案

公孙霖
2023-03-14

看起来(如Mark所述)您使用了错误的通道类型。我用谷歌告诉我西班牙语的Receiver在英语中翻译成Receiver。接收方类型通道是消息通道,用于队列管理器到队列管理器的通信。

对于MQ客户机(例如:spring boot)到队列管理器的通信,您需要连接到MQI通道,在队列管理器上,这将具有服务器连接类型。

IBMMQ v8知识中心页面”IBMMQ Explorer

消息通道
消息通道是两个队列管理器之间的单向通信链路。IBM MQ使用消息通道在队列管理器之间传输消息。要在两个方向上发送消息,必须为每个方向定义一个通道。

MQI通道
MQI通道是双向的,将应用程序(MQI客户端)连接到服务器机器上的队列管理器。IBMMQ使用MQI通道在MQI客户端和队列管理器之间传输MQI调用和响应。

IBM文件每种类型进一步向下的页面:

消息通道

消息通道定义可以是以下类型之一:

接收方
接收方通道是队列管理器用于接收来自其他队列管理器的消息的消息通道。要使用接收方通道接收消息,还必须在另一个队列管理器上创建与此接收方通道同名的发送方或服务器通道。

MQI频道

MQI通道可以是以下类型之一:

服务器连接
服务器连接通道是用于将IBM MQ客户端连接到IBM MQ服务器的双向MQI通道。服务器连接通道是通道的服务器端。

柳鸿博
2023-03-14

客户端程序连接到SVRCONN通道,而不是接收器。

 类似资料:
  • 我有一个带应用程序的spring boot应用程序。属性文件和spring数据jpa。在应用程序中,我有一个外部依赖项,需要加载外部Spring项目的bean,该项目具有基于xml的配置。外部xml有自己的组件扫描和spring jpa设置,可以与应用程序中提供该DB属性的其他DB进行交互。属性文件,我正在使用@ImportResources将其bean注入父应用程序。但是,当我在做这个sprin

  • 如何使用Spring框架转换以下代码? 基本上,如果出现rabbitMQ异常,我需要指定一个自定义异常处理程序,然后停止应用程序 如何在每次出现异常时发布rabbitMq消息? 编辑 我以这种方式修改了配置类: 这是我的BrokerExceptionHandler类 我可以看到日志和

  • 是否可以根据我使用的Spring Boot配置文件加载不同的log4j配置。 假设我在application.properties中 在application-live.properties中,我为所有3个都有不同的值

  • 正在尝试在linux服务器上部署spring启动应用程序 r,“线程名称”:“localhost-startStop-1”,“级别”:“错误”,“级别值”:40000,“堆栈跟踪”:“组织”。springframework。豆。工厂BeanCreationException:创建名为“org”的bean时出错。springframework。验证。Bean验证。OptionalValidatorF

  • 从这份官方文件中,很难确定这两个模块之间有什么区别。 谁能提供一个官方和规范的答案来解释两者的区别吗?

  • 我正在tomcat(Servlet2.5)中运行一个传统的Spring启动战。虽然CharacterEncodingFilter默认配置为spring boot 1.2.0,但请求没有任何编码集。我可以在自动配置和日志中看到它的配置。这可能不是由SpringBootLegacy(1.0.1)配置的?我将过滤器添加到web。xml和我的请求现在采用utf-8编码。但是,这不适用于请求参数。我认为这是