gpt4 book ai didi

jms - 在 WMQ 中创建 JMS 主题发布者返回 2035 未授权

转载 作者:行者123 更新时间:2023-12-04 19:45:05 30 4
gpt4 key购买 nike

我在尝试从看似简单的 Java 代码创建主题发布者时遇到了一个持续的问题。我的 WMQ 在公司是单独管理的,所以我不能直接控制它。

我尝试通过创建 TopicConnection 来连接到该主题,然后是 TopicSession然后是 TopicPublisher ,使用相当标准的 Java 代码,尽管通过 SSL 设置一些额外的系统 Prop 。但是,无论是否使用 SSL,我都遇到了同样的问题,我很确定。

在线上

this.topicPublisher = this.topicPublisherSession.createPublisher(this.topic);

引发 WMQ 异常如下
Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').
at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:209)

WMQ 管理员可以通过在 SYSTEM.BASE.TOPIC 上授予身份验证来为我提供“修复”。 .但是,公司风险政策不允许这样做。

有人问我为什么需要访问基本主题,但我当然不需要这种访问权限。我只需要发布到我的主题。

任何 WMQ 专家有任何其他想法吗?
非常感谢。

最佳答案

MQ 维护一个 Topic Tree 来管理发布/订阅。默认情况下,不允许非管理员用户访问主题树。主题树的根从 SYSTEM.BASE.TOPIC 解析属性。

当应用程序尝试使用主题创建发布者时,MQ 使用指定的主题字符串进行权限检查。 MQ 在主题树中搜索与给定主题字符串匹配的节点。如果找到匹配,则确定发布或订阅的权限。如果用户有足够的权限,那么创建发布者调用就会成功。如果没有节点匹配,那么 MQ 会向上到主题树的根节点来确定权限。

在您的情况下,您的应用程序指定了一个与主题树中定义的任何节点都不匹配的主题字符串。 MQ 尝试确定根的权限。由于您没有发布权限,因此调用失败,原因代码为 2035。

那么可以做什么呢?不要提供对 SYSTEM.BASE.TOPIC 的访问权限,而是让您的管理员使用您的应用程序正在使用的主题字符串创建一个主题,并为您提供 publish权威。

关于jms - 在 WMQ 中创建 JMS 主题发布者返回 2035 未授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29965474/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com