Go back to main page of i5/OS Programmer's Toolkit.
Queue objects is the native and basic IPC method in IBM i. They are not only used to synchronize and exchange data between MI processes but also used to coordinate the communication between an MI process and the SLIC; for exmaple, the QMIRQ (MI responce queue). While the most used and well-known types of queue object are DTAQ (Data Queue) and USRQ (User Queue). DTAQ and USRQ share the commons features of a queue object. Their MI object-type code is hex 0A; their MI object-subtype code is hex 01 and hex 02 for DTAQ and USRQ respectively. As to difference between them, you can simply regard USRQ as a more lightweight and powerful while less robust DTAQ.
As an MI object, a queue object has the following "methods" (operations):
There're shipped CL commands and APIs that can be used to work with queue object. For example, by issuing CL command GO CMDDTAQ or GO CMDUSRQ, you can find all CL commands can be used to operate queue objects (CRTDTAQ, DLTDTAQ, WRKDTAQ, and DLTUSRQ). You can also find the queue object-related APIs in the Information Center, for example, Data Queue APIs and User Queue APIs. However, not all types of operation on all types of queue object are coverred by the shipped CL commands and APIs. For example, there's no shipped API to achieve the ENQ, DEQ, MATQAT, MATQMSG functions on a USRQ. Here, we try to provide the complement.