MainframeKit

QIDERR

DFHRESP(QIDERR) = 44CICS RESP CONDITION

The temporary storage or transient data queue named in the command cannot be found.

MOST LIKELY

The TS queue was never written, or was already deleted.

FIRST CHECK

Treat QIDERR on a TS read as 'no data yet' where that is expected.

TRY IT ▸

MainframeKit assistant

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

  1. Treat QIDERR on a TS read as 'no data yet' where that is expected.
  2. Check that the TD queue is defined (for example with CEMT INQUIRE TDQUEUE).
  3. Print the queue name the program built and compare it with the expected name.
  4. 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