【问题标题】:Creating JMS topic publisher returns 2035 unauthorized in WMQ在 WMQ 中创建 JMS 主题发布者返回 2035 未经授权
【发布时间】:2015-07-10 00:32:05
【问题描述】:

我在尝试从看似简单的 Java 代码创建主题发布者时遇到问题。我的 WMQ 在公司中单独管理,因此我无法直接控制它。

我尝试通过创建一个TopicConnection、一个TopicSession 和一个TopicPublisher 来连接到该主题,尽管使用的是相当标准的Java 代码,尽管是通过SSL 设置一些额外的系统属性。但是,无论是否使用 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 专家有什么其他的想法吗? 非常感谢。

【问题讨论】:

    标签: jms ibm-mq jms-topic


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-04-26
      • 2020-08-05
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2018-11-05
      相关资源
      最近更新 更多