0

This is a very unusual problem that I am facing.

I have an application running in Weblogic 12c. JMS foreign server and destinations are all created in weblogic. Also all the queues are defined in the Queue Manager. .Bindings file is also in place which has been created with the MQ definitions. Now initially my application could access all those queues. I can see the queues inside the QM, using runmqsc command and DISPALY QSTATUS.

However recently since few days back I am getting the below error while accessing the Queues :

com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2085'.
at com.ibm.mq.MQDestination.open(MQDestination.java:322)
at com.ibm.mq.MQQueue.<init>(MQQueue.java:236)
at com.ibm.mq.MQQueueManager.accessQueue(MQQueueManager.java:3288)
at com.zaq.abc.xyz.queues.QueueStatusBean.setQueueInfo(QueueStatusBean.java:305)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:35)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)

I am using MQ-9, Weblogic 12c, OS:Linux, Java 8. Any help to get the root cause will be much appreciated

JoshMc
  • 10,239
  • 2
  • 19
  • 38
Som
  • 1,522
  • 1
  • 15
  • 48
  • 2
    Reason code 2085 - means a queue with the name specified in accessQueue method does not exist on the queue manager your application is connected to. Have you checked if the queue exists now? anything like the queue name changed in .bindings file? – Shashi Feb 13 '20 at 07:57
  • For troubleshooting do you have access to the queue manager? What is the specific version of the queue manager and the IBM MQ jars in use by weblogic? – JoshMc Feb 13 '20 at 10:35
  • If you can see the queue using DISPLAY QUEUE and/or DISPLAY QSTATUS on the queue manager, then it is possible that your application is connecting to a different queue manager. Are you connecting over the network? Is the connection name you are using the same as where the queue manager is listening - port number included? – Morag Hughson Feb 14 '20 at 04:56
  • Hi All... Thanks for your reply. Actually I was using the correct QM and queues. However, while debugging the issue, I just once refreshed my QM. uninstall application, managed server restart , and redeployed the application. It started accessing the QM and queues once again. Not sure if this have really provided the resolution but it worked. Thank you all once again. Mostly 2085 is related to queue not present, or inaccessible queues. In a previous case it was a queue missing for me, but in this case it was not. – Som Feb 14 '20 at 07:08
  • I doubt it was not the case. There is always a explanation for 2085 where it turns out to be true, @MoragHughson provided some examples. – JoshMc Feb 14 '20 at 13:42
  • 1
    @Som what does "refreshed my QM" mean? Did you do a dltmqm and a crtmqm? Did you issue some form of REFRESH command? How are your queues created? If they are dynamic then there could have been some order/timing cause. I'm not sure you or we could tell you what to do to resolve the problem if it happened again in exactly the same way from what we know yet. – Morag Hughson Feb 15 '20 at 00:04
  • MQCMD_REFRESH_Q_MGR has been used. But I could find the root cause. This happened because there was one queue called as TESTQ created and deleted later, and the design of the code was such that it reads queue names from DB abd access them via JMS and while accessing all the queues if it dont find one it will throw exception. So may be this was the reason. – Som Feb 17 '20 at 06:49

0 Answers0