【问题标题】:WSO2 - IBM MQ - javax.naming.NamingException: Unable to communicate with the queue manager while looking up objectWSO2 - IBM MQ - javax.naming.NamingException:在查找对象时无法与队列管理器通信
【发布时间】:2017-02-01 20:09:45
【问题描述】:

在尝试将 WSO2 ESB 代理服务连接到在 IBM MQ 中配置的队列(新创建的)时遇到以下问题。

奇怪的是,能够成功连接到同一个队列管理器中已经存在的队列。

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}

【问题讨论】:

  • 该错误提示我在查找对象时丢失了与 QueueManager 的连接;这是一个可重复的问题吗?
  • 您好,感谢您的回复。这个问题在几分钟前得到了解决。队列对它们没有任何权限。一旦提供了适当的访问权限,问题就会得到解决。

标签: wso2 jms ibm-mq esb


【解决方案1】:

客户端系统 (WSO2) 使用的 MQ 客户端用户配置文件没有适当的“权限”,如 PUT、SET 等,无法将消息放入队列。

一旦配置文件被授予对 MQ 队列对象的 PUT、SET 和 BROWSE 适当权限,问题就解决了。

【讨论】:

  • 这个答案需要改进,即使是自我回答。
猜你喜欢
  • 1970-01-01
  • 2021-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-17
  • 1970-01-01
  • 2021-05-14
相关资源
最近更新 更多