What it means
The program opened an object and kept the handle. Since then something changed the definitions that affect it, so the queue manager no longer accepts that handle for this call. This can happen during REFRESH CLUSTER, when cluster information is rebuilt.
Typical causes
- A queue or alias definition was altered or redefined while the program had it open.
- REFRESH CLUSTER ran while the application was connected.
- Cluster definitions changed so the resolved queue is different.
How to fix it
- Close the handle with MQCLOSE, open the object again, and retry the call.
- If the program depends on queue attributes, call MQINQ after reopening to get current values.
- Avoid running REFRESH CLUSTER while key applications are active unless it is needed.
Example
Illustrative only; names and values are invented.
MQPUT failed CompCode=2 Reason=2041 Queue=APP.CLUSTER.QUEUE