The MQCreateVtiRead() function creates 3a table bound to a queue specified by service_name, 3using the quality of service policy defined in policy_name. 3Selecting from the table created by this function returns all the 3committed messages in the queue, but does not remove the messages 3from the queue. If no messages are available to be returned, the 3SELECT statement returns no rows. An insert to the bound table puts 3a message into the queue.
3The table created has the following schema and uses the "informix".mq access method: 3
3create table table_name ( 3 msg lvarchar(maxMessage), 3 correlid varchar(24), 3 topic varchar(40), 3 qname varchar(48), 3 msgid varchar(12), 3 msgformat varchar(8)); 3 using "informix".mq (SERVICE = service_name, 3 POLICY = policy_name, 3 ACCESS = "READ");3
The mapping for a table bound to a queue requires translation 3of operation. Actions on specific columns within the table are translated 3into specific operations within the queue, as outlined here:
3The following table describes how the arguments for the MQCreateVtiRead() function 3are interpreted. 3
3 3| Usage | 3Argument Interpretation | 3
|---|---|
| MQCreateVtiRead(arg1) | 3arg1 = table_name | 3
| MQCreateVtiRead(arg1, arg2) | 3
3 arg1 = table_name 3arg2 = service_name 3 |
3
| MQCreateVtiRead(arg1, arg2, arg3) | 3
3 arg1 = table_name 3arg2 = service_name 3arg3 = policy_name 3 |
3
| MQCreateVtiRead(arg1, arg2, arg3, arg4) | 3
3 arg1 = table_name 3arg2 = service_name 3arg3 = policy_name 3arg4 = maxMessage 3 |
3