Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle高级队列-订户消息跟踪_Oracle_Oracle Aq - Fatal编程技术网

Oracle高级队列-订户消息跟踪

Oracle高级队列-订户消息跟踪,oracle,oracle-aq,Oracle,Oracle Aq,Oracle Advanced Queuing如何跟踪订阅者为多消费者队列退出队列的消息 用户队列订阅者表跟踪每个队列的订阅者。我找不到跟踪给定队列订阅者状态的表/视图(例如订阅者退出队列的最后一条消息是什么?)。查询AQ$.MSG\u状态。AQ$.MSG_状态为每个消息的每个订户都有一个条目 select queue, consumer_name, deq_txn_id, deq_time, deq_user_id, user_data, msg_state from aq$MC_QU

Oracle Advanced Queuing如何跟踪订阅者为多消费者队列退出队列的消息

用户队列订阅者表跟踪每个队列的订阅者。我找不到跟踪给定队列订阅者状态的表/视图(例如订阅者退出队列的最后一条消息是什么?)。

查询
AQ$.MSG\u状态。
AQ$.MSG_状态
为每个消息的每个订户都有一个条目

select queue, consumer_name, deq_txn_id, deq_time, deq_user_id, 
 user_data, msg_state
  from aq$MC_QUEUE_TABLE
  where queue = 'MC_QUEUE';
在示例中,我的队列表是
MC\u queue\u table
,我的队列是
MC\u queue

MSG_状态为:

  • 准备就绪-消息已准备就绪,可以进行处理,即延迟
  • 保留处理-消息已成功处理(退出队列),但将保留在队列中,直到执行
    dbms\u aqadm.create\u queue
    时为队列指定的
    保留时间
  • 等等
假设我们有两条消息(msg1、msg2)和两个订户(sub1、sub2)。sub1已经将msg1退出队列。 因此,我们将看到:

QUEUE                          USER_DATA MSG_STATE        CONSUMER_NAME                 
MC_QUEUE                       (msg1)    READY            SUB2          
MC_QUEUE                       (msg2)    READY            SUB2          
MC_QUEUE                       (msg1)    PROCESSED        SUB1           
MC_QUEUE                       (msg2)    READY            SUB1

由于
保留时间
,您可能无法看到已处理的邮件。

完美。正是我想要的。谢谢