【问题标题】:Spring boot + JMS + IBM MQ春季启动 + JMS + IBM MQ
【发布时间】:2019-05-07 05:27:35
【问题描述】:

我正在尝试从我的 Spring Boot 服务向 IBM MQ 队列发送消息。配置如下:

Application.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

@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 Explorer 图片

队列

频道

听众

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

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

我错过了什么?错误提示比我的 chammel 类型不符合我的要求,但我不知道这意味着什么。

提前致谢。

【问题讨论】:

    标签: spring spring-boot ibm-mq


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您似乎使用了错误的频道类型(如 Mark 所述)。我快速谷歌告诉我西班牙语Receptor 用英语翻译成Receiver。 Receiver 类型的通道是一个消息通道,用于队列管理器到队列管理器的通信。

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


      IBM MQ v8 知识中心页面“IBM MQ Explorer>Configuring IBM MQ using MQ Explorer>Creating and configuring queue managers and objects>Objects in MQ Explorer>Channels”记录了这一点:

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

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

      IBM 在页面下方记录了每种类型:

      消息渠道

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

      接收者
      接收器通道是队列管理器使用的消息通道从其他队列管理器接收消息。接受 使用接收器通道的消息,您还必须创建,另一方面 与此同名的队列管理器、发送方或服务器通道 接收通道。

      MQI 渠道

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

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

      【讨论】:

        猜你喜欢
        • 2018-04-06
        • 1970-01-01
        • 2020-09-29
        • 1970-01-01
        • 2017-09-11
        • 2015-04-18
        • 2017-06-24
        • 2015-08-22
        • 2015-09-18
        相关资源
        最近更新 更多