创建JMS主题发布器在WMQ中返回2035 unauthorized

创建JMS主题发布器在WMQ中返回2035 unauthorized,jms,ibm-mq,jms-topic,Jms,Ibm Mq,Jms Topic,我在尝试从看似简单的java代码创建主题发布器时遇到了一个持续的问题。我的WMQ在公司内单独管理,因此我对其没有直接控制权 我尝试通过创建一个TopicConnection,然后创建一个TopicSession,然后创建一个TopicPublisher,使用相当标准的Java代码(尽管是通过SSL),从而连接到主题,从而设置一些额外的系统道具。然而,无论是否使用SSL,我都有同样的问题,我相当肯定 在线 this.topicPublisher = this.topicPublisherSessi

我在尝试从看似简单的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专家有其他想法吗?
非常感谢。

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

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

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

那么我们能做些什么呢?请管理员使用应用程序正在使用的主题字符串创建一个主题,并向您提供发布权限,而不是提供对SYSTEM.BASE.TOPIC的访问权限