IBM MQ-我无法创建主题不是从DEV开始的在docker版本上

问题描述

我已根据以下链接安装了IBM MQ的Docker版本

https://developer.ibm.com/tutorials/mq-connect-app-queue-manager-containers/

然后,我创建了具有以下规格的新主题名称:PROD.TEST 主题字符串:dev / test /

然后从C#客户端中,我正在使用dev / test /创建所创建主题订阅者:

目的地= sessionWMQ.Createtopic(env.Conn.topic_name);订户 = sessionWMQ.CreateConsumer(destination);

由于某些原因,如果主题名称不是以DEV开头。第二行抛出以下异常:

捕获到xmsException:IBM.xms.IllegalStateException:失败 使用MQSUB订阅主题dev / test /。可能有一个 由于另一个订阅正在使用而导致创建订阅时出现问题 消息使用者。确保使用此消息的任何消息使用者 尝试创建新订阅之前,已关闭订阅 同名。

链接的异常:CompCode:2,原因:2035

解决方法

为使您快速入门,MQ开发人员版本的容器映像预先授权了一个名为“ app”的用户,该用户可以连接到队列管理器并访问一组预定义的队列和主题。这些是DEV。*队列和通过DEV.BASE.TOPIC定义的主题树的“ dev /”分支。 here

对此进行了解释

然后您可以在此基础上通过添加队列和主题并根据需要授予对它们的访问权限。

要通过MQ的CLI(runmqsc)进行此操作,可以使用SET AUTHREC命令。或者,要使用Web界面,请单击新主题的配置,然后选择“安全性”选项卡。您需要根据应用程序要执行的操作来授予发布或订阅权限。

enter image description here

很显然,这可以助您一臂之力,随着您的前进,您将需要查看安全性要求并决定如何配置MQ以提供此功能。