12.9 OracleAQMessageDeliveryMode Enumeration

The OracleAQMessageDeliveryMode enumeration type specifies the delivery mode of the message.

Table 12-32 lists all the OracleAQMessageDeliveryMode enumeration values with a description of each enumerated value.

Table 12-32 OracleAQMessageDeliveryMode Members

Member Name Description

Buffered

Indicates a buffered message.

Both enqueue and dequeue buffered messaging operations must be in IMMEDIATE visibility mode. This means that these operations cannot be part of another transaction. You cannot specify delay when enqueuing buffered messages.

Dequeuing applications can choose to dequeue persistent messages only, buffered messages only, or both types.

Buffered messages can be queried using the AQ$Queue_Table_Name view. These messages appear with states, IN-MEMORY or SPILLED.

Transaction grouping queues and array enqueues are not supported for buffered messages in Oracle Database 11g release 1 (11.1) . One can still use the array enqueue procedure to enqueue buffered messages, but the array size must be set to 1. Array dequeue is not supported for buffered messaging, but one can still use the array dequeue procedure by setting array size to 1.

Buffered messaging is faster than persistent messaging. Use buffered messaging for applications that do not require the reliability and transaction support of Oracle Streams AQ persistent messaging.

Persistent

Indicates a persistent message.

Persistent messaging ensures reliability and support transactions. It is slower than buffered messaging.

PersistentOrBuffered

Indicates a persistent or buffered message.

This is used with Dequeue() when a consumer wants to dequeue a message irrespective of whether it is Persistent or Buffered.

Requirements

Provider ODP.NET, Unmanaged Driver

Assembly

Oracle.DataAccess.dll

Namespace

Oracle.DataAccess.Client

.NET Framework

3.5, 4.5, 4.6