ReadQ TD Command

The READQ TD command
             EXEC CICS
                      READQ TD QUEUE(name)
                      { INTO(data-area) | SET(pointer-ref) }
                      [ LENGTH(data-value) ]
                     [ SYSID(name) ]
                     [ NOSUSPEND ]

QUEUE Specifies the one to four character name of the transient data queue from where the data is to be retrieved.

INTO Specifies the data area to where the record from the queue is to be written.

SET Specifies the data area that will contain the address of the retrieved record.

LENGTH Specifies a half word PIC S9(4) COMP field that indicates on input the length of the buffer. On return from the call CICS sets it with the length of the record fetched.

SYSID Specifies the one to four character connection name that points to a remote system.

NOSUSPEND Specifies that if the queue is busy, control is to return immediately to the program at the point following the READQ TD command.

Exception Conditions:
DISABLED The destination is disabled

INVREQ The extrapartition queue has been opened for output.

IOERR An I/O error occurred

ISCINVREQ An undeterminable error occurred at the remote system.

LENGERR The length of the record exceeds the length of the buffer specified in the LENGTH option.

NOTOPEN The destination is not open

QBUSY Another task is writing or deleting a record in the queue.

QZERO There are no more records in the destination.

QIDERR The destination specified in the call is not defined to CICS (either via RDO or DCT).

SYSIDERR The remote system could not be located or accessed.

  • There are two types of queues. One is intrapartition and implemented on VSAM ESDS pointed to by DFHNTRA. The other is a QSAM and is an extrapartition queue.
  • An intrapartition queue can have ATI with a specified trigger level. One common use of ATI is for printing applications.
  • Records are always fetched from the queue in the order in which they were written. Also the read is destructive, the record is deleted.
  • To have exclusive use of the queue use CICS ENQ and DEQ.
  • You should expect QZERO condition to arise if the queue is empty.
  • You can get a QBUSY condition only if you specified NOSUSPEND. If you had not specified NOSUSPEND, your task blocks until the queue is no longer busy and your request completes.


Computers TopOfBlogs Technology Blogs Mainframe interview question and answers,mainframe jobs,cobol,vsam,jcl,cics,db2,rdbms,mvs,tso,ispf,ibm,hcl,tcs,cts,wibro Blog Directory