MQRC 2036: Handle not open for browsing
MQRC 2036 means MQGET requested browsing without a browse-capable handle. Check MQOPEN options and distinguish browsing from consuming messages.
Other names for this code
Also written as RC2036, reason code 2036, MQ error 2036, MQRC_NOT_OPEN_FOR_BROWSE, 07F4, 0x07F4.
What it means
Browse options on MQGET require a queue handle opened with MQOO_
IBM also documents that browse options are not supported for MQ Multicast messaging. Establish the messaging model before changing the handle configuration.
A troubleshooting example
A diagnostic button is added to a producer that already has an output handle. Its first browse returns 2036 because the button reuses that handle. Give the diagnostic path its own browse open and close lifecycle. In a test queue, put two marked messages, browse both, then consume them with a separate client. The test verifies both permission to browse and the more important business property: inspection must not remove the messages. It also catches accidentally replacing browse with a destructive input get.
Common causes
- A queue opened for output is reused by a diagnostic browse routine.
- A shared wrapper omits MQOO_
BROWSE when constructing its open-options mask. - A multicast consumer requests browse behavior that the transport does not support.
How to find the problem
- Log the options supplied to the MQOPEN that returned this exact Hobj. Do not inspect a different open of the same queue.
- Compare the later MQGET mask with that open. Look for MQGMO_
BROWSE_ FIRST, MQGMO_ BROWSE_ NEXT or an under-cursor option. - Check whether conditional setup or a wrapper default removed the browse bit. Record symbolic options and the numeric mask.
- Confirm whether the application uses ordinary queues or Multicast. For Multicast, review the supported consumption model instead of reopening repeatedly.
How to fix it
- Open the intended queue with MQOO_
BROWSE before using browse get options. Reopen under a controlled lifecycle if changing an existing handle. - Keep producer, consumer and browse handles distinct when their responsibilities differ. Name them clearly enough that a helper cannot accidentally borrow the wrong one.
- Test that browsing leaves messages available for the intended consumer. A successful get alone does not prove that the tool avoided consuming business data.
What it looks like
Illustrative diagnostic notes; not an IBM message template. MQOPEN: MQOO_OUTPUT MQGET: MQGMO_BROWSE_FIRST Reason=2036 Required browse open option: MQOO_BROWSE
IBM documentation
IBM MQ 9.4: 2036 MQRC_NOT_OPEN_FOR_BROWSE. Use the documentation for your installed release.
Related codes
Questions
Can I fix 2036 by changing queue permissions?
First check the open options. A handle opened without MQOO_BROWSE remains unsuitable even if the user has browse authority.
Does MQOO_INPUT_SHARED also allow browsing?
Input and browse are separate open capabilities. Include the options the application actually needs and validate their supported combination.