MQRC 2085: Object name unknown
MQRC 2085 (MQRC_
Other names for this code
Also written as RC2085, reason code 2085, MQ 2085, MQ error 2085, MQRC_UNKNOWN_OBJECT_NAME, 0825, 0x0825, unknown object name, MQ queue not found, JMSWMQ2008 2085, MQJE001 Reason 2085.
What it means
When an application opens a queue, topic object or other object, it gives a name and type in the MQOD. If ObjectQMgrName is blank or names the local queue manager, the queue manager looks for a local object of that name and type. If there isn't one, and the name doesn't resolve to a cluster queue it knows about, the call fails with MQCC_
Object names in MQ are case-sensitive and up to 48 characters. MQSC folds unquoted names to uppercase, so a queue defined as DEFINE QLOCAL(orders.in) is really ORDERS.IN. An application that opens orders.in gets 2085. Applications often connect to a different queue manager from the one where the queue was defined, too, especially after a configuration change.
On z/OS, a queue defined with QSGDISP(GROUP) is only a group definition. It can't be opened. Defining the group object normally creates a QSGDISP(COPY) object on each queue manager in the group, and that copy is what applications open. In a cluster, 2085 can mean this queue manager has no route to the queue manager hosting the cluster queue, or that the application named its own queue manager instead of leaving the name blank. The same reason code identifies the Unknown Object Name event, and it is returned by commands that name an object that doesn't exist.
Common causes
- The queue isn't defined on the queue manager the application is connected to.
- The name differs in spelling or case, or has stray characters, such as a lowercase name in the application and an uppercase queue in MQ.
- The application connects to the wrong queue manager, for example a test queue manager or the other member of a pair.
- In a cluster, the queue is hosted elsewhere and this queue manager hasn't learned about it, or ObjectQMgrName names the local queue manager instead of being blank.
- On z/OS, the object exists only with QSGDISP(GROUP) and not as a usable copy on this queue manager.
- For JMS, the queue name in the JNDI object or the queue URI is wrong.
How to find the problem
- Run
DISPLAY QUEUE(ORDERS.IN)on the queue manager the application really uses. On z/OS use the command prefix, and addQSGDISPto see where the definition lives. - Log the exact name the program passes, between visible delimiters, so trailing characters and case show up.
- Confirm which queue manager the application reached. For clients, check the host, port and channel against the target.
- For cluster queues, run
DISPLAY QCLUSTER(ORDERS.on the connecting queue manager.IN) - If queue manager events are on, the Unknown Object Name event records the name that was asked for.
How to fix it
- Define the queue, or correct the name in the application or its configuration.
- Use the uppercase name, or quote the name in MQSC if a lowercase queue name is really wanted.
- Point the application at the right queue manager.
- For cluster queues, leave ObjectQMgrName blank, open for output only, and fix cluster membership if the queue isn't visible.
What it looks like
JMSWMQ2008: Failed to open MQ queue 'ORDERS.IN'.
JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2085' ('MQRC_UNKNOWN_OBJECT_NAME').IBM documentation
IBM documentation: MQRC 2085. Use the documentation for your installed release.
Related codes
Questions
The queue exists. Why do I still get 2085?
Usually the application is connected to a different queue manager, or the name differs in case. MQ names are case-sensitive, and MQSC changes unquoted names to uppercase.
Can I get 2085 when opening a cluster queue?
Yes. If this queue manager has no route to the cluster queue, or the application names its own queue manager, the lookup fails. Leave the queue manager name blank and check DISPLAY QCLUSTER.
What is the difference between 2085 and 2087?
2085 means the object name wasn't found. 2087 means the name points at a remote queue manager that this queue manager doesn't know how to reach.