簡體   English   中英

無法使用容器將消息放入 ibm mq

[英]Unable to put message in ibm mq using container

我有兩個使用 docker-compose 構建的 docker 容器。 其中一個初始化 ibm mqs,另一個是暴露其余端點(使用 SpringBoot 項目)以向第一個容器設置的 ibm mq 發送消息。 當我得到 docker-compose up 時,我收到以下錯誤

mock-service_1  | 2020-01-29 08:07:52.928 ERROR 1 --- [nio-7090-exec-2] c.j.ids.controller.AcarsController       : JMSWMQ0018: Failed to connect to queue manager 'QM1' with connection mode 'Client' and host name 'localhost(1414)'.
acars-mock-service_1  | com.ibm.msg.client.jms.DetailedIllegalStateException: JMSWMQ0018: Failed to connect to queue manager 'QM1' with connection mode 'Client' and host name 'localhost(1414)'. Caused by: com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2538' ('MQRC_HOST_NOT_AVAILABLE').

mock-service_1  |         at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:203)

如果我從我的 IDE 本地運行 SpringBoot 應用程序而沒有任何錯誤,我可以將消息放在同一個隊列中。 不確定使用單獨的容器有什么問題。 我的 DockerFile 看起來像這樣

FROM ibmcom/mq
USER root
RUN useradd ibm-mq -G mqm && \
    echo ibm-mq:passw0rd | chpasswd
USER mqm
COPY config.mqsc /etc/mqm/

EXPOSE 9443 1414

和 config.mqsc

ALTER QMGR CHLAUTH(DISABLED)

docker-compose.yml

version: '3.3'
services:
  ibm-mq-mock:
    build: 
      context: ../mock-service/ibm-mq
      dockerfile: Dockerfile
    ports:
      - 9443:9443
      - 1414:1414
    environment:
     LICENSE: accept
     MQ_QMGR_NAME: QM1 
  mock-service:
    build:
      context: ../mock-service
    ports:
      - 7090:7090
    depends_on:
     - ibm-mq-mock
    environment:
     MQ_QMGR_NAME: QM1
     CHANNEL: DEV.ADMIN.SVRCONN
     IBM_MQ_HOST: localhost
     IBM_MQ_PORT: 1414
     IBM_MQ_USERID: admin
     IBM_MQ_PASSWORD: passw0rd
     IBM_MQ_QUEUE: DEV.QUEUE.1
     LOG_LEVEL: INFO
     PROFILE: test

您的 spring 容器內的 Localhost 是您的 spring 容器。 您需要容器的 / 主機 ip,而不是為您的 MQ 連接將主機設置為 localhost。

你怎么做取決於你主機的平台,但它會像host.docker.internal

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM