我想知道oracle表GV$PERSISTENT_QUEUES
上的字段到底意味着什么。
文档:
ENQUEUED_MSGS NUMBER Number of messages enqueued
DEQUEUED_MSGS NUMBER Number of messages dequeued
Note: This column will not be incremented until all the subscribers of the message have dequeued the message and its retention time has elapsed.
...
ENQUEUED_EXPIRY_MSGS NUMBER Number of messages enqueued with expiry
ENQUEUED_DELAY_MSGS NUMBER Number of messages enqueued with delay
MSGS_MADE_EXPIRED NUMBER Number of messages expired by time manager
MSGS_MADE_READY NUMBER Number of messages made ready by time manager
...
ENQUEUE_TRANSACTIONS NUMBER Number of enqueue transactions
DEQUEUE_TRANSACTIONS NUMBER Number of dequeue transactions
我的问题:
ENQUEUED_MSGS
和ENQUEUED_DELAY_MSGS
计算?DEQUEUED_MSGS
和MSGS_MADE_READY
?
MSGS_MADE_READY
如何大于ENQUEUED_DELAY_MSGS
?ENQUEUED_EXPIRY_MSGS
和MSGS_MADE_EXPIRED
的含义是什么?ENQUEUED_MSGS
和ENQUEUE_TRANSACTIONS
之间有什么区别,与出队相同?提前感谢您的帮助!
答案 0 :(得分:0)
我很确定已找到上述大部分问题的解决方案。
DEQUEUED_MSGS
可能大于ENQUEUED_MSGS
。仍在队列表中的队列条目将保留在那里。数据库重启后,这些条目将被出列并添加到出队消息的数量中,但它们不会被添加到排队消息的数量中。ENQUEUED_MSGS
是排入队列的所有邮件的总和。ENQUEUED_DELAY_MSGS
是排队延迟的所有邮件的总和。ENQUEUED_MSGS - ENQUEUED_DELAY_MSGS
=所有已及时排队的邮件DEQUEUED_MSGS
(全部)和MSGS_MADE_READY
(仅限延迟)。我还不知道ENQUEUE_TRANSACTIONS
和DEQUEUE_TRANSACTIONS
是什么意思(也许DEQUEUE_TRANSATIONS
描述了多个消费者队列中一条消息的出列数),但我不会使用那些领域。