Streams Overflow Table Leaving Orphaned Messages in State 7 (Doc ID 242664.1)

Last updated on MAY 07, 2017

Applies to:

Oracle Database - Enterprise Edition - Version 9.2.0.1 and later
Information in this document applies to any platform.

Symptoms

When the in-memory buffers that OracleStreams uses exceed their capacity, the messages are spilled to an overflow table owned by the Streams administrator called AQ$_<queue_table_name>_P. In some situations these messages are not purged, and this table can become quite large. This can be
assessed with the following query:

select state, count(*)
from <streams_administrator>.AQ$_<queue_table_name>_P;

It can be seen that the majority of the messages are at status 7.

Changes

Advanced Queuing message states are as follows:

WAITING CONSTANT BINARY_INTEGER := 1;
READY CONSTANT BINARY_INTEGER := 0;
PROCESSED CONSTANT BINARY_INTEGER := 2;
EXPIRED CONSTANT BINARY_INTEGER := 3;
SPILLED CONSTANT BINARY_INTEGER := 7;
DEFERRED CONSTANT BINARY_INTEGER := 8;
DEFRSPIL CONSTANT BINARY_INTEGER := 9;


Status 7 indicates that the messages has been spilled, but also has been processed (is not deferred).

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms