指定的RECEIVE语句至少修改一行或并将其返回到ServiceBroker队列。
对于给定的会话,RECEIVE语句将返回status为1的消息,并将消息按message_sequence_number的升序排列。
如果RECEIVE语句指定的队列的队列状态设置为OFF,则该语句将失败,并返回Transact-SQL错误。
RECEIVE语句将锁定返回的消息所属的会话组,直到包含该语句的事务完成为止。
当前正在RECEIVE语句中等待此队列的会话数。
指定如果当前没有消息,则RECEIVE语句将等待消息到达队列。
此数字包括任何执行接收语句的会话,不管队列监视器是否启动了该会话。
RECEIVE语句的WHERE子句可能只包含使用conversation_handle或conversation_group_id的搜索条件。
可以在RECEIVE语句或GETCONVERSATIONGROUP语句中指定TIMEOUT。
RECEIVE语句将从队列中删除已收到的消息,但队列指定消息保持时除外。
RECEIVE语句返回的所有消息都属于同一个会话组。
如果RECEIVE语句或GETCONVERSATIONGROUP语句指定了不可用的队列,则该语句将失败,并出现Transact-SQL错误。
要从一个进程内接收一条消息,可使用receive语句。
在receive语句内,使用模式匹配根据消息内容来确定要执行哪些操作。
标记为Initiation的Receive语句:这是我们单元测试启动的目标。
RECEIVE语句子句,从ServiceBroker队列检索一条或多条消息。
当队列的RETENTION设置为ON时,RECEIVE语句将status列更新为1,并使消息留在队列中。
接下来创建receive语句以输出消息(请参见清单7)。