Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
返回排队等候给定地址的下一条消息的消息 ID,在有消息排队之前会一直阻塞。
VARCHAR(128) 形式的消息 ID。
如果没有消息排队等候此地址,则返回空值。
此存储过程用于同步检查是否有消息在等候指定的 QAnywhere 消息地址。如果想在有消息等候指定的 QAnywhere 地址时异步调用 SQL 过程,则使用监听器。
在有消息排队之前,此存储过程将一直阻塞。
有关避免阻塞的信息,请参见ml_qa_getmessagenowait或ml_qa_getmessagetimeout。
在当前事务提交之前,与返回的消息 ID 对应的消息将不被视为已收到。一旦接收被提交,此 QAnywhere API 或其它任何 QAnywhere API 就不能再次收到该消息。同样,对当前事务的回退表示未收到该消息,这样,对 ml_qa_getmessage 的后续调用可能会返回同一个消息 ID。
在对当前事务执行提交或回退之前,可由各种 ml_qa_get 存储过程读取已接收消息的属性和内容。一旦对当前事务执行了提交或回退,就不能再读取消息数据了。在提交之前,应以表格形式或在 SQL 变量中存储您所需要的任何消息数据。
下面的示例显示了发送到地址 myaddress 的所有消息的内容:
begin declare @msgid varchar(128); loop set @msgid = ml_qa_getmessage( 'myaddress' ); message 'a message with content ' || ml_qa_gettextcontent( @msgid ) || ' has been received'; commit; end loop; end