What it means
QIDERR means CICS does not know the queue. For temporary storage it means the queue is not in main or auxiliary storage; for transient data it means the symbolic queue name is not defined.
For TS queues this is often normal, for example on the first read before any item is written.
Typical causes
- The TS queue was never written, or was already deleted.
- The TD queue name is not defined in the region.
- The queue name is built wrongly (for example a terminal ID part is missing).
How to fix it
- Treat QIDERR on a TS read as 'no data yet' where that is expected.
- Check that the TD queue is defined (for example with CEMT INQUIRE TDQUEUE).
- Print the queue name the program built and compare it with the expected name.
- Code RESP (and RESP2) on the command and test the value with DFHRESP.
Example
Illustrative only; names and values are invented.
EXEC CICS READQ TS QUEUE(WS-QNAME) INTO(WS-ITEM) ITEM(1)
RESP(WS-RESP) END-EXEC