简体   繁体   English

WSO2-IBM MQ-javax.naming.NamingException:查找对象时无法与队列管理器通信

[英]WSO2 - IBM MQ - javax.naming.NamingException: Unable to communicate with the queue manager while looking up object

Facing the following issue while trying to connect WSO2 ESB proxy services to queues (newly created) configured in IBM MQ. 尝试将WSO2 ESB代理服务连接到IBM MQ中配置的队列(新创建)时遇到以下问题。

The strange part is, able to connect to queues which were already existing in the same Queue Manager, successfully. 奇怪的是,它能够成功连接到同一队列管理器中已经存在的队列。

TID: [0] [ESB] [2016-01-14 12:05:12,705]  INFO {org.apache.axis2.transport.jms.JMSListener} -  Connection attempt: 1 for JMS Provider for service: UOFSInterface was successful! {org.apache.axis2.transport.jms.JMSListener}
TID: [0] [ESB] [2016-01-14 12:05:12,712]  INFO {org.apache.axis2.transport.jms.ServiceTaskManager} -  Task manager for service : UOFSPickedInterface [re-]initialized {org.apache.axis2.transport.jms.ServiceTaskManager}
TID: [0] [ESB] [2016-01-14 12:05:12,829]  WARN {org.apache.axis2.transport.jms.JMSUtils} -  Cannot locate destination : UOFS.ESB.IN {org.apache.axis2.transport.jms.JMSUtils}
javax.naming.NamingException: Unable to communicate with the queue manager while looking up object UOFS.ESB.IN
        at com.ibm.mq.jms.context.MQContext.lookup(MQContext.java:947)
        at javax.naming.InitialContext.lookup(InitialContext.java:411)
        at org.apache.axis2.transport.jms.JMSUtils.lookup(JMSUtils.java:583)
        at org.apache.axis2.transport.jms.JMSUtils.lookupDestination(JMSUtils.java:789)
        at org.apache.axis2.transport.jms.ServiceTaskManager.getDestination(ServiceTaskManager.java:950)
        at org.apache.axis2.transport.jms.ServiceTaskManager.access$2700(ServiceTaskManager.java:50)
        at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.createConsumer(ServiceTaskManager.java:905)
        at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.getMessageConsumer(ServiceTaskManager.java:766)
        at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.receiveMessage(ServiceTaskManager.java:516)
        at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.run(ServiceTaskManager.java:428)
        at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)
TID: [0] [ESB] [2016-01-14 12:05:12,833] ERROR {org.apache.axis2.transport.jms.ServiceTaskManager} -  Error creating JMS consumer for service : UOFSInterface. JMSWMQ2008: Failed to open MQ queue 'UOFS.ESB.IN'. {org.apache.axis2.transport.jms.ServiceTaskManager}

The MQ client user profile used by the client system (WSO2) didn´t have the appropriate "authorities" like PUT, SET etc., to drop messages into the queue. 客户端系统(WSO2)使用的MQ客户端用户配置文件没有适当的“权限”(例如PUT,SET等)将消息放入队列。

The issue was resolved once the profile was given appropriate authorities to PUT, SET & BROWSE on the MQ queue object. 一旦配置文件被赋予MQ队列对象上的PUT,SET和BROWSE适当的权限,此问题就解决了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM