ori*_*kid 4 jms jms-topic ibm-mq
我正在尝试从看似简单的Java代码创建主题发布者时遇到问题.我的WMQ在公司单独管理,所以我没有直接控制它.
我尝试通过使用相当标准的Java代码创建a TopicConnection,然后a TopicSession然后a 来连接到主题,TopicPublisher尽管通过SSL设置一些额外的系统道具.但是我有相同的问题,有或没有SSL我相当肯定.
在线上
this.topicPublisher = this.topicPublisherSession.createPublisher(this.topic);
Run Code Online (Sandbox Code Playgroud)
提出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)
Run Code Online (Sandbox Code Playgroud)
WMQ管理员可以通过授权来为我提供"修复" SYSTEM.BASE.TOPIC.但是,公司风险政策不允许这样做.
有人问我为什么需要访问基本主题,但当然我不需要访问权限.我只需要发布到我的主题.
任何WMQ专家都有其他想法吗?非常感谢.
MQ维护一个用于管理发布/订阅的主题树.默认情况下,不允许非主管用户访问主题树.主题树的根解析SYSTEM.BASE.TOPIC中的属性.
当应用程序尝试使用主题创建发布者时,MQ使用指定的主题字符串进行权限检查.MQ在主题树中搜索与给定主题字符串匹配的节点.如果找到匹配,则确定发布或订阅的权限.如果用户具有足够的权限,则创建发布者调用将成功.如果没有节点匹配,则MQ上升到主题树的根目录以确定权限.
在您的情况下,您的应用程序指定了一个与主题树中定义的任何节点都不匹配的主题字符串.MQ尝试确定根目录的权限.由于您没有发布权限,因此调用失败并显示2035个原因码.
那可以做些什么呢?不要提供对SYSTEM.BASE.TOPIC的访问权限,而是要求管理员创建一个主题,其中包含您的应用程序正在使用的主题字符串,并为您提供publish权限.
| 归档时间: |
|
| 查看次数: |
525 次 |
| 最近记录: |