java 在IBM MQ中创建队列(docker compose)

c2e8gylq  于 2023-08-01  发布在  Java
关注(0)|答案(3)|浏览(288)

我正在开发一个使用IBM MQ的Sping Boot 应用程序。我希望所有这些都能在docker compose中配置。但问题是,在应用程序中使用了从浏览器中的UI创建的自定义队列,例如application.yml文件:

  1. ...
  2. ibm:
  3. mq:
  4. queues:
  5. first: QUEUE1
  6. second: QUEUE2

字符串
当我想从docker compose文件运行它时,我现在如何在启动时创建这些队列?当我手动运行ibm mq时,我使用这样的命令:

  1. docker run --env LICENSE=accept --env MQ_QMGR_NAME=QM1 --publish 1414:1414 --publish 9443:9443 --detach ibmcom/mq:latest


现在我几乎做了同样的事情,但在docker-compose.yml文件中:

  1. ...
  2. ibm-mq:
  3. image: 'ibmcom/mq:latest'
  4. container_name: ibm-mq
  5. ports:
  6. - "1414:1414"
  7. - "9443:9443"
  8. environment:
  9. - LICENSE = accept
  10. - MQ_QMGR_NAME = QM1


是否有任何环境变量来创建自定义队列,或者我如何做到这一点?我没有找到任何解决办法。

bnl4lu3b

bnl4lu3b1#

根据这些信息:定制队列管理器配置,您可以创建一个名为20-config.mqsc的MQSC文件,其中包含一些配置选项,这些选项将在创建队列管理器时运行。只需将其放入映像上的/etc/mqm目录即可。
创建20-config.mqsc文件如下:

  1. DEFINE QLOCAL(QUEUE1) REPLACE
  2. DEFINE QLOCAL(QUEUE2) REPLACE

字符串
并将其Map到您的docker-compose.yml作为卷,如下所示:

  1. ibmmq:
  2. image: ibmcom/mq
  3. ports:
  4. - "1414:1414"
  5. - "9443:9443"
  6. environment:
  7. - LICENSE=accept
  8. - MQ_QMGR_NAME=QM1
  9. volumes:
  10. - <your 20-config.mqsc file path>:/etc/mqm/20-config.mqsc


对我很有效

展开查看全部
bjg7j2ky

bjg7j2ky2#

自定义队列管理器配置一章介绍了以下选项:
您可以通过多种方式自定义配置:
1.对于入门,您可以使用默认的开发人员配置,该配置对于MQAdvancedforDevelopers映像是现成可用的
1.通过创建您自己的映像并将您自己的MQSC文件添加到映像上的/etc/mqm目录中。这个文件将在创建队列管理器时运行。
1.通过使用远程MQ管理,通过MQ命令服务器、MQ HTTP API,或使用MQ Web控制台或MQ Explorer等工具。

iqih9akk

iqih9akk3#

  1. version: '3'
  2. services:
  3. mq:
  4. image: icr.io/ibm-messaging/mq:latest
  5. ports:
  6. - "1414:1414"
  7. - "9443:9443"
  8. environment:
  9. - LICENSE=accept
  10. - MQ_QMGR_NAME=QM1
  11. - MQ_APP_PASSWORD=passw0rd
  12. - MQ_ADMIN_PASSWORD=passw0rd
  13. volumes:
  14. - ./mqdata:/mnt/mqm

字符串

相关问题