IBM MQ reason code

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_BROWSE. Opening a queue for ordinary input or output does not grant browse capability to that handle. Adding a browse option later cannot change the original open.

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

  1. Log the options supplied to the MQOPEN that returned this exact Hobj. Do not inspect a different open of the same queue.
  2. Compare the later MQGET mask with that open. Look for MQGMO_BROWSE_FIRST, MQGMO_BROWSE_NEXT or an under-cursor option.
  3. Check whether conditional setup or a wrapper default removed the browse bit. Record symbolic options and the numeric mask.
  4. 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.

Report a correction to WND Software.

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.