MQCreateVtiReceive() 函数会创建表,然后将其映射到 WMQ 管理的队列。
MQCreateVtiReceive() 函数会创建绑定到由 service_name 指定的队列的 table_name(使用 policy_name 中定义的服务质量策略)。如果从该表进行选择,将返回队列中的所有可用消息,并从队列中除去这些消息。如果没有任何消息可以返回,将不返回任何行。插入到绑定表会将消息放入队列。
create table table_name ( msg lvarchar(maxMessage), correlid varchar(24), topic varchar(40), qname varchar(48), msgid varchar(12), msgformat varchar(8)); using "gbasedbt".mq (SERVICE = service_name, POLICY = policy_name, ACCESS = "RECEIVE");
用途 | 自变量解释 |
---|---|
MQCreateVtiReceive(arg1) | arg1 = table_name |
MQCreateVtiReceive(arg1, arg2) | arg1 = table_name
arg2 = service_name |
MQCreateVtiReceive(arg1, arg2, arg3) | arg1 = table_name
arg2 = service_name arg3 = policy_name |
MQCreateVtiReceive(arg1, arg2, arg3, arg4) | arg1 = table_name
arg2 = service_name arg3 = policy_name arg4 = maxMessage |
begin; EXECUTE FUNCTION MQCreateVtiRead('VtiReceiveTest'); commit;
INSERT INTO VtiReceiveTest(msg) values ('QMessage');
select * from VtiReceiveTest;
如果尝试再次读取队列,将不返回任何行,因为表是使用 MQCreateVtiReceive() 函数创建的,而该函数在读取条目时便会将其除去。